초기화 블록의 종류
class InitializationBlock {
// 클래스 초기화 블록(static)
static {}
// 인스턴스 초기화 블록(non-static)
{}
}
초기화 시점과 순서
class InitializationBlock {
static int classVariable = 1;
int instantVariable = 101;
static {
classVariable = 2;
}
{
instantVariable = 102;
}
InitializationBlock {
instantVariable = 103;
}
}
- 클래스 초기화
- 시점: 클래스가 처음 메모리에 로딩되는 시점에 수행
- 순서
- 기본값:
classVariable = 0
- 명시적 초기화:
classVariable = 1
- 클래스 초기화 블록:
classVariable = 2
- 인스턴스 초기화
- 시점: 인스턴스가 생성되는 시점에 수행
- 순서
- 기본값:
instantVariable = 0
- 명시적 초기화:
instantVariable = 101
- 인스턴스 초기화 블록:
instantVariable = 102
- 생성자:
instantVariable = 103