본문 바로가기

프로그래밍

java 기본 용어 정리

programming 

java basic word





환경변수 설정은 자주 필요하므로 숙지해둔다. 

자바 옵션중 -c, -version 두개가 가장 중요하다.  

-c는 javac class파일을 컴파일한다. / -version은 자바 버전을 출력해준다. 

자바는 대,소문자를 구분한다. 컴파일을 하려면 파일명과 클래스명이 동일해야하고 기본적으로 첫글자를 대문자로 지정한다. 띄어쓰기도 값이 있으므로(화이트 스페이스)마디마다 대문자로 구분해준다. 

자바를 실행시키면 JVM이 main메소드 부터 찾게된다. 

 

Class : 프로그램의 최소단위 구성요소로 객체의 구조를 만들고 생성할 수 있다. 

 

객체 : Class의 데이터와 메소드로 정의된 행동을 가지며 new 연산자로 생성되고 시스템 메모리인 힙에 할당된다. 

자바에서 힙(Heap)이란 가비지 컬렉션 기능이 있는 메모리 공간으로 객체의 크기에 따라 메모리 공간을 할당하고, 객체를 사용할 수 없다면(객체 접근방법이 없을때) 가비지 컬렉션 대상이 되고 메모리가 부족할 경우 가비지 컬렉터가 작동하여 사용하지 않는 객체를 제거한다. 

   

Method : 클래스가 기능할 수 있도록 하며 객체의 행동을 나타낸다. 

 

변수 : 정수, 부울, 부동소수점 수와 같은 기초적인 값(단순 비트 패턴으로 나타내는 값)을 대입할 수 있는  원시 변수와 특정 객체에 접근할 수 있는 객체 레퍼런스 변수가 있다. 

 

원시 유형의 변수 

유형 

비트 수 

범위 

부울과 문자형 

boolean 

char 

 

1비트 

16비트 

 

true또는 false 

0~65535 (' '로 문자를 사용할 수 있다. 한글자)  

숫자 

정수 

byte 

short 

int 

long 

 

 

8비트 

16비트 

32비트 

64비트 

  

 

-128~127 

-32768~32767 

-2147483648~2147483647 

-아주 큰 값~아주 큰 값 

부동소수점 소수 

float 

double 

 

32비트 

64비트 

 

바뀔 수 있음 

바뀔 수 있음 

 

array: 요소들을 순차적으로 접근할 수 있게 해준다. (배열) 

int[ ] ia = new int[3]; 과 같이 선언하며 3개의 int값(정수)을 가지는 배열이라 한다. 

String:문자열- 긴 문자 데이터를 " "로 표시하여 사용할 수 있다. 

unsigned (부호가 없는) : 자바에서는 char에서만 허용하며 C언어에서 사용한다.  

byte의 경우 signed의 범위는 -128~127이고 unsigned의 범위는 0~255이기 때문에 허용되지 않는다. byte를 unsigned로 사용하려면 int로 변경한 후 256값을 더해주는 방법도 있다. 

byte b; int i = b & 0xff; 

 

연산자 : 변수의 값을 확인하고 명령을 하는데 사용한다. 

종류 

 

 

 

산술연산 

 

+,-,*,/,%(나머지) 

기본 숫자 타입으로 연산으로 수행한다. 

일반 연산자 

증가 및 감소 

++,-- 

숫자 변수나 숫자 배열 요소에만 적용할 수 있다. ++는 변수에 1을 더하는 것을 의미한다.  

 

관계 및 등호 

>,>=,<,<=,==(같다),!=(같지않다) 

boolean값을 반환한다. 기본 숫자타입에 적용 ==과!=는 boolean값에만 사용할 수 있다. 

 

논리 

&&(조건부 논리곱 AND), 

||(조건부 논리합OR) 

&&(And)는 양쪽 모든 피연산자가 참일 경우에만 참이 성립되고 ||(or)는 한쪽의 피연산자가 참일 경우에도 모두 참으로 성립한다.  

 

대입 

오른쪽 피연산자의 값을 왼쪽 변수에 대입한다. 

접근 

 

.    (ref.method( )) 

객체 레퍼런스 변수나 메소드에 접근할 수 있다. 

       

 

(클래스)접근 제한자: public - public으로 선언되면 클래스내의 구성에 어디서든 접근할 수 있다. 

private - 오직 클래스 내에서만 접근할 수 있다. 

static:정적 메소드-특정 객체가 아닌 클래스로부터 생성된 모든 객체에 대해 작업을 수행한다.  

객체 없이 클래스만 있어도 작업을 할 수 있다. 

void: 값을 가지지 않으며 메소드 선언시 리턴유형을 void로 할 경우 리턴하지 않는다. 

 

분기문 

if : boolean 표현식으로 나온 값이 성립할 경우 설정된 문장을 실행하고 성립하지 않을 경우 다음으로 넘어간다. if else 를 사용하여 성립하지 않은 표현식을 재검사 할 수 있으며 else로 나머지를 검사하지 않고 문장을 실행할 수 있다. 

int x = 4 

if (x==5) { 

System.out.println("x는 5") 

}else{ 

System.out.println("x는 5가 아님") 

switch: 정수타입(char, byte, short, int) 표현식으로 지정하여 모든 값을 검사하고 일치하는 값의 문장을 실행한다. 일치하지 않을 경우 default 실행한  종료한다. if문으로 변경 가능. 

    int c = 2; 

        switch(c){ 

            case 1: 

                System.out.println("1 입니다."); 

            case 2: 

                System.out.println("2 입니다."); 

            case 3: 

                System.out.println("3 입니다."); 

                break;// (break가 없다면 계속 진행됨) 

            default: 

                System.out.println("1부터 4까지 입력해야 합니다."); 

순환문 

for : 조건을 지정하여 조건이 성립 될 때까지 반복하여 실행한다. 

정수인 i라는 변수를 만들고 0으로 설정한 후(초기화) i가 100 이상이 될 때 까지(부울테스트) 반복하여 실행하며 반복이 끝나면 i에 1을 추가한다(반복 표현식)는 의미이다. 

for(int i = 0; i < 100; i++){ } 

 

while : boolean 표현식을 사용하며 결과가 true일경우 문장을 실행하고 false가 될 때까지 반복한다. 처음 결과가 false일 경우 실행되지 않으며 do while을 사용하면 최소 한번은 실행된다.  

  int cnt = 0; 

        while(true){ 

            cnt = cnt + 1; 

            System.out.println("cnt: " + cnt); 

             

            if (cnt == 4){ 

                break;       // while문을 탈출함 

 

오류체크-예외 확인 try,catch,finally : 

try 괄호내에 있는 코드에서 예외가 발생할 경우에 catch블록으로 넘어가서 괄호 내의 내용을 실행한다. 그 이후 finally내의 내용을 실행한 후 종료되는데 try에서 예외가 발생되지 않을 경우 catch블록도 실행되지 않지만 finally블록은 관계없이 실행된다. 

 

try{ 

        int a = Integer.parseInt(args[0]);  

        int b = Integer.parseInt(args[1]); 

 

        System.out.println(" a = " + a + " b = " + b) ; 

        // 예외가 발생할 가능성이 있는 코드 

        System.out.println(" a b 나눈 = " + (a/b) ); 

      }catch(Exception e){ 

        // 예외 발생시 처리 

        System.out.println("[경고]예외발생:" + e.toString()); 

      }finally{ 

        // 무조건 실행 

        System.out.println("나눗셈 연산이 종료 되었습니다."); 

      } 

 

주석처리 : 다른 프로그래머가 코드를 이해할 수 있도록 돕는다.  

자바 컴파일러는 라인 일부분/* */ 사이에 작성되는 코드를 무시한다.  

특정라인 부분에는 //를 사용하며 /** */는 문서화 주석이라 하여 코드 최상단에 선언한다. 

JSP에서는 <%--내용 --%>, HTML에서는 <!--내용-->으로 표현되며 HTML은 다른 주석과 다르게 화면에 출력된다. 

 

오버라이딩 : 하위 클래스에서 메소드의 기능을 변경하거나 확장해야할 때 새로 정의하는것이다. 오버로딩과 달리 인자는 같아야 한다. 

Public class Doctor { 

void treatPatient( ) { //진료하는 메소드 

public class surgeon extends Doctor{ 

void treatPatient( ){ //외과 수술하는 메소드 

}  

 

오버로딩 : 이름은 같지만 인자 목록이 다른 메소드를 추가한다. 리턴타입을 바꿀 수 있지만 인자목록이 달라야 한다. 

     System.out.println(0); 

     System.out.println(8.7); 

     System.out.println("안녕하세요"); 

     System.out.println("IT" + " 분야입니다.");