1. 정의

클래스의 초기화와 관련된 작업을 수행하고, 생성자보다 먼저 호출되며 클래스 초기화 블록과 인스턴스 초기화 블록으로 구분된다.

 

 

2. 분류

분류 

설명 

 클래스 초기화 블록

 클래스 파일이 JVM에 로드 되는 시점에 실행됨

 인스턴스 초기화 블록

 클래스의 인스턴스가 생성되고, 생성자가 호출되기 전에 실행됨

 

 

3. 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
public class Hello {
    
    //class initialization block
    static {
        System.out.println("클래스 초기화 블록");
    }
    
    //instance initialization block
    {
        System.out.println("인스턴스 초기화 블록");
    }
    
    //default constructor
    Hello () {
        System.out.println("디폴트 생성자");
    }
    
    Hello (int value) {
        System.out.println("생성자 오버로딩");
    }
}
 
public class HelloMain {
    final static boolean LOG_ENABLE = false;
    
    public static void main(String[] args) {
        Hello hello = new Hello();
        Hello hello2 = new Hello(0);
    }
}
cs

 

 


'BackEnd > Java' 카테고리의 다른 글

가변인수 (Java 5.0 이상)  (0) 2017.02.13
Java :: 열거형 (Enumeration) (Java 5.0 이상)  (0) 2017.02.13
AWT vs 스윙 (Swing)  (0) 2017.02.10
람다식과 함수형 프로그래밍 (Java 8.0 이상)  (0) 2017.02.09
자바 기본 정리  (0) 2017.02.09

+ Recent posts