2013년 8월 2일 금요일

자바의클래스 초기화에 대해서... (class initialize)

클래스가 어떻게 초기화 되는지 잘 알고 있어야 합니다.


오라클자바커뮤니티에서 설립한 오엔제이프로그래밍 실무교육센터
(오라클SQL, 튜닝, 힌트,자바프레임워크, 안드로이드, 아이폰, 닷넷 실무전문 강의) 



클래스가 메모리로 적재된 후  클래스가 사용 되기 전 한번 초기화 된다.

초기화 순서
-  모든 클래스변수는 Default 초기치(0, ‘\u0000’,false, null)로 초기화 된다.
- 클래스변수 초기화수식(Static initializers)과 클래스 초기화 블럭이 실행된다.
      예) public static int PI=3.14;
          public static int facs[] = new int[10];
          static { facs[0]=1;
          for(int I=1;I<10;I++) { facs[I] = facs[I-1]*I; }


New 연산자에 의한 작업 순서

-  객체를 위한 메모리 공간 할당
-  모든 인스턴스 변수는 Default 초기치(0, ‘\u0000’,false, null)로 초기화 된다.
- 인스턴스 변수 초기화수식(instance initializers)과 초기화 블럭이 실행된다.
- 생성자의 첫문장에서 다른 생성자를 호출하는 경우엔 이를 먼저 처리(서브클래스인 경우 명시적인 상위클래스 생성자에 대한 호출이 없으면 super()를 삽입하고 이를 실행한다.)
- 생성자의 나머지 부분을 실행한다. 

댓글 없음:

댓글 쓰기