클래스 초기화 블럭(=static 초기화 블럭)
- 클래스 내에 static이 붙은 블럭({} 사이)이 있으면, 클래스가 메모리에 저장될 때 한 번 실행
- 한 번 저장되면 다시 저장할 필요 x
인스턴스 초기화 블럭
- 객체로 초기화 될 때 실행되는 블ㄹ럭
- 객체를 생성할 때마다 실행
- 생성자보다 먼저 실행된다.
public class Init{
// 생성자
Init() {
System.out.println("생성자");
}
// 클래스 초기화 블럭
static {
System.out.println("클래스 초기화 블럭");
}
// 인스턴스 초기화 블럭
{
System.out.println("클래스 초기화 블럭");
}
public static void main(String[] args) {
System.out.println("main메서드 시작");
System.out.println("Init 객체 생성");
Init init1 = new Init(); // 객체 생성
}
}
클래스 초기화 블럭
main메서드 시작
Init 객체 생성
인스턴스 초기화 블럭
생성자