단계를 외웠는지가 아니라, 컴파일·로딩·실행 엔진까지 이어 가며 성능·디버깅 이슈를 같은 그림 위에서 설명할 수 있는지 가르려는 질문이다.
자바 소스는 javac가 바이트코드(.class)로 컴파일하고, 런타임에서는 클래스 로더가 필요한 클래스만 메모리에 끌어 올린다. 한 클래스는 로딩 → 링킹(검증·준비·해결) → 초기화 순으로 단계를 밟아 비로소 실행 가능한 상태가 되고, static 블록·필드 초기화는 이 마지막 초기화 시점에서 일어난다. 실행 엔진은 처음엔 인터프리터로 빠르게 시작했다가, 같은 메서드가 자주 호출되면 JIT가 그 핫스폿을 네이티브 코드로 컴파일해 캐시에 박는다. 이 혼합 전략 덕에 기동은 가볍게, 장기 실행 구간은 네이티브 수준으로 빨라진다.
초기 응답 지연이 JIT 워밍업 때문인지 다른 요인 때문인지 측정으로 구분해 본 경험이 있다면 실행 엔진 직관 사례로 연결할 수 있다
static 초기화 시점에 묶인 부작용을 분리해 본 적이 있다면 클래스 초기화 트리거 이해로 엮을 수 있다
JVM 옵션(인라이닝·티어드 컴파일·AOT)을 만지며 성능을 본 경험이 있다면 인터프리터·JIT 혼합 전략 관점으로 말할 수 있다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.