* Class Loading 과정
> 클래스가 처음 로딩 될 때 단 한번 초기화 된다
1. Loading 작업이 수행된다
> *.class 파일을 읽어 Method (Class) Area 에 할당
1) 클래스의 이름으로 class path 에 있는 바이너리로 된 자바 클래스를 찾는다
2) 자바 클래스를 정의한다
3) 해당 클래스를 나타내는 java.lang 패키지의 Class 클래스의 객체를 생성한다
2. Link 작업이 수행된다
> Static 빌드를 생성 및 초기화하고, 메서드 테이블을 할당한다
3. Initializing 작업이 수행된다
1) Class (Static) Variable 에 기본값을 할당 (e.g. int = 0)
2) 명시적 초기화 (Explicit initialization)
- 기본적인 초기화
3) Class 초기화 블럭 수행
- static {}
* Instance 변수 초기화 과정
> 인스턴스가 생성될 때마다 각 인스턴스 별로 초기화가 이루어진다
1. Heap 에 instance 메모리 할당
2. 변수에 기본 값 할당 (e.g. int = 0)
3. 명시적 초기화 (Explicit initialization)
- 기본적인 초기화
4. 인스턴스 초기화 블럭
- {}
5. Constructor
'SW > ::: Java' 카테고리의 다른 글
//Garbage Collector (0) | 2020.10.10 |
---|---|
JIT Compiler (0) | 2020.10.10 |
HotSpot VM (0) | 2020.10.10 |
Java GC 및 Memory 설정 (0) | 2020.10.10 |
Stream (스트림) (0) | 2020.10.09 |