1. 들어가며


컴퓨터는 0과 1만 인식하지만 가상 머신이 출현하면서 그 위에서 동작하는 수 많은 프로그램 언어가 등장했다. 이를 통해 프로그램을 네이티브 코드로 컴파일하지 않아도 동작하며, OS나 기계어에 종속되지 않는 플랫폼 독립적인 언어가 현대에는 채택되고있다.

2. 플랫폼 독립을 향한 초석


자바 → Write Once, Run Anywhere

이를 위해

image.png

3. 클래스 파일의 구조


클래스 파일 구조는 굉장히 안정적이다. 자바의 수십번에 해당하는 업그레이드에도 클래스 파일 기본 구조는 거의 변하지 않았고 변하더라도 하위 호환을 유지할 수 있게 확장했다. → 옛 버전으로 컴파일하더라도 잘돌아감

.class(클래스파일)은 .java 파일을 javac 컴파일러로 컴파일했을때 나오는 파일이다.

이 파일은 JVM이 읽을 수 있는 실행 단위 바이너리이다. 다음과 같은 정보가 담겨있다.