2026 국가직9급 컴퓨터일반 16번 해설 — Java 초기화 순서
정답 ④번출제 쟁점 Java 초기화 순서발문 옳은 것 고르기
문제
다음 Java 프로그램의 출력 결과는? class ClassA { ClassA() { System.out.print("1"); } static { System.out.print("4"); } } public class ClassB extends ClassA { ClassB() { System.out.print("2"); } public static void main(String[] args) { System.out.print("3"); new ClassB(); } }
- ① 32
- ② 432
- ③ 3214
- ④ 4312 컴퓨터일반 ← 정답
선지별 해설
① 32
이 선지 진술은 틀림(X)
main 실행 전 상위 클래스의 static 블록이 먼저 실행되어 4가 출력되고, 이후 3, 1, 2가 이어진다.
② 432
이 선지 진술은 틀림(X)
객체 생성 시 부모 생성자가 먼저 실행되어 1이 출력되고 그다음 자식 생성자의 2가 출력된다. 전체 출력은 4312이다.
③ 3214
이 선지 진술은 틀림(X)
클래스 초기화의 static 블록이 main 본문보다 먼저 실행된다. 따라서 4가 3보다 앞에 온다.
④ 4312 컴퓨터일반
이 선지 진술은 옳음(O)
ClassB 초기화 전에 ClassA의 static 블록이 4를 출력하고, main의 3 뒤에 ClassA 생성자 1, ClassB 생성자 2가 출력된다.
핵심 요약 (Q&A)
- Q. 2026 국가직9급 컴퓨터일반 16번의 핵심 쟁점은 무엇인가?
- A. 2026 국가직9급 컴퓨터일반 16번은 Java 초기화 순서에 관한 문항으로, "옳은 것"을 고르는 문제입니다.
- Q. 2026 국가직9급 컴퓨터일반 16번의 정답은?
- A. 정답은 ④번입니다. ClassB 초기화 전에 ClassA의 static 블록이 4를 출력하고, main의 3 뒤에 ClassA 생성자 1, ClassB 생성자 2가 출력된다.