Study · JDK · STEP 3 / 8 · 컴파일할 때
Hello.class 414바이트 중 70%는 이름표(상수 풀)다
장면
5줄짜리 Hello.java를 컴파일했더니 414바이트가 나왔다. 그 안에는 무엇이 들어 있을까?
아래 재생기의 ▶를 누르면 한 스텝씩 진행된다. 금색 테두리가 방금 바뀐 곳이고, 캡션이 무슨 일이 일어났는지 말해 준다. 굵게 밑줄 친 말은 누르면 뜻이 나온다.
장면 · 414바이트 안에 든 것
0 / 12
Hello.class 414바이트에는 구분 기호가 없다. ▶를 누르면 앞에서부터 정해진 길이만큼 잘라 읽는다.
키보드 · ← → 한 스텝 · Space 재생/멈춤 · Home 처음
명령은 System이나 println 같은 이름 대신 상수 풀 번호만 들고 있다. 그 번호가 실행 중 진짜 대상으로 바뀌는 과정은 이 페이지에서 다루지 않는다.
어떻게 확인했나
- 파일은 이 컴퓨터의 javac 21.0.10으로 만들었다 — 그래서 major 버전이 65다.
- 바이트 구간은 파일을 16진수로 찍는 od 명령 · javap와 파이썬 스크립트로 잘랐다.
- JVM(HotSpot)이 이 파일을 읽는 코드의 줄 번호는 JDK 27 소스의 classFileParser.cpp 기준이다.