* 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


* HotSpot VM 에서의 Class 데이터 관리


'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

+ Recent posts