while(1) work();
article thumbnail
반응형

문제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 블럭 내부의 코드가 실행 되지 않는다.

반응형
profile

while(1) work();

@유호건

❤️댓글은 언제나 힘이 됩니다❤️ 궁금한 점이나 잘못된 내용이 있다면 댓글로 남겨주세요.

검색 태그