Language/Java

초기화 블록(Initialization block)

snowkit 2022. 7. 17. 22:20

초기화 블록의 종류

  • 클래스 초기화 블록
  • 인스턴스 초기화 블록
class InitializationBlock {

    // 클래스 초기화 블록(static)
    static {}

    // 인스턴스 초기화 블록(non-static)
    {}
}

초기화 시점과 순서

class InitializationBlock {

    static int classVariable = 1;

    int instantVariable = 101;

    static {
        classVariable = 2;
    }

    {
        instantVariable = 102;
    }

    InitializationBlock {
        instantVariable = 103;
    }
}
  1. 클래스 초기화
    • 시점: 클래스가 처음 메모리에 로딩되는 시점에 수행
    • 순서
      1. 기본값: classVariable = 0
      2. 명시적 초기화: classVariable = 1
      3. 클래스 초기화 블록: classVariable = 2
  2. 인스턴스 초기화
    • 시점: 인스턴스가 생성되는 시점에 수행
    • 순서
      1. 기본값: instantVariable = 0
      2. 명시적 초기화: instantVariable = 101
      3. 인스턴스 초기화 블록: instantVariable = 102
      4. 생성자: instantVariable = 103

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

변수, 메소드, this, super  (0) 2022.07.17
오버라이딩(Overriding), 오버로딩(Overloading)  (0) 2022.07.17
배열(Array)  (0) 2022.07.17
소수점 자르기  (0) 2022.06.14
문자형(char)  (0) 2022.06.13