반응형
문제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 블럭 내부의 코드가 실행 되지 않는다.
반응형
'언어 > JAVA' 카테고리의 다른 글
Permutation, Combination algorithm using bitmasking (0) | 2023.04.06 |
---|---|
이상하고 아름다운 JAVA 퀴즈 5 (0) | 2023.03.13 |
이상하고 아름다운 JAVA 퀴즈 3 (0) | 2023.03.13 |
이상하고 아름다운 JAVA 퀴즈 2 (0) | 2023.03.13 |
이상하고 아름다운 JAVA 퀴즈 1 (0) | 2023.03.13 |