언어/JAVA
이상하고 아름다운 JAVA 퀴즈 4
유호건
2023. 3. 13. 15:04
반응형
문제A
class Q4 {
static {
System.out.println("1");
}
public static void main(String[] args) {
System.out.println("2");
}
static class SubQ4 {
static {
System.out.println("3");
}
}
}
출력값은 무엇인가?
문제 B
class Q4 {
static {
System.out.println("1");
}
public static void main(String[] args) {
System.out.println("2");
SubQ4.value++;
}
static class SubQ4 {
private static int value = 123;
static {
System.out.println("3");
}
}
}
정답
문제A) 1 2가 출력된다.
문제B) 1 2 3이 출력된다.
SubQ4 클래스는 static inner class이지만 실제 사용 전 까지는 메모리에 올라가지 않는다. (클래스 메타데이터 제외)
따라서 static 블럭 내부의 코드가 실행 되지 않는다.
반응형