[Java] 초기화 블럭(Initialization block)
JAVA
2019. 7. 14. 17:42
소스 코드를 보다보면 클래스 내부에 중괄호 { } 만으로 이루어지거나 static { } 만으로 이루어진
코드 부분이 있는 경우가 종종 있습니다.
이들을 초기화 블럭(Initialization block)이라 부르며, 클래스가 실행되면 생성자보다 먼저 실행됩니다.
{ } 의 경우에는 클래스가 호출될 때마다 실행되고
static { } 의 경우는 정적 요소인 static의 특징답게 클래스가 메모리로 로딩될 때 한번만 실행되며
메모리에 상주하게 됩니다.
다음은 예제를 보면 확실히 이해할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Main { static String info; static { System.out.println("static 블록 실행!"); info = "static 블록 호출!"; } public Main() { System.out.println("생성자 호출!"); } public static void main(String[] args) { System.out.println("메인 메소드 호출!"); Main m1 = new Main(); Main m2 = new Main(); System.out.println(Main.info); } } | cs |
실행 결과는 <그림 1>과 같습니다.
'JAVA' 카테고리의 다른 글
[Java] try-with-resources를 사용한 자동 리소스 닫기 (0) | 2019.07.14 |
---|