JAVA/포스팅

자바 정적 초기화 블럭 (Static Initialization Block)

짜집퍼박사(짜박) 2023. 11. 9. 10:26

자바의 "정적 초기화 블럭" 또는 "정적 초기화 블록(Static Initialization Block)"은 클래스가 처음으로 로드될 때 실행되는 코드 블록입니다. 이 블록은 클래스 변수를 초기화하거나 복잡한 초기화 작업을 수행하는 데 사용됩니다.

 

정적 초기화 블록의 특징

 

- 정적 초기화 블록은 클래스 내부에 선언되며, 클래스가 처음으로 로드될 때 한 번 실행됩니다.
- 클래스 변수를 초기화하는 데 주로 사용되며, 클래스 변수는 모든 객체에 대해 공유됩니다.
- 클래스 내부에 여러 개의 정적 초기화 블록을 선언할 수 있습니다.
- 정적 초기화 블록은 클래스 로드 시에 실행되므로 클래스가 로드될 때 초기화 작업을 수행할 수 있습니다.

정적 초기화 블록의 사용 예제

public class MyClass {
    static int y; // 클래스 변수

    static {
        // 정적 초기화 블록
        y = 20; // y 변수를 초기화
        System.out.println("정적 초기화 블록 실행");
    }

    public static void main(String[] args) {
        System.out.println("y = " + y);
    }
}

위의 예제에서 MyClass 클래스에는 클래스 변수 y가 있으며, 이 변수를 정적 초기화 블록을 사용하여 초기화합니다. 클래스가 로드될 때 정적 초기화 블록이 실행되므로 클래스 변수 y는 클래스 로드 시 초기화됩니다.

출력은 다음과 같을 것입니다

정적 초기화 블록 실행
y = 20

정적 초기화 블록은 클래스 로드 시에 한 번 실행되므로 주로 클래스 변수를 초기화하는 데 사용됩니다. 클래스 변수를 초기화하거나 다른 클래스 수준의 초기화 작업을 수행하려는 경우에 유용합니다.

 

With ChatGPT