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

클래스 파일 구조는 굉장히 안정적이다. 자바의 수십번에 해당하는 업그레이드에도 클래스 파일 기본 구조는 거의 변하지 않았고 변하더라도 하위 호환을 유지할 수 있게 확장했다. → 옛 버전으로 컴파일하더라도 잘돌아감
.class(클래스파일)은 .java 파일을 javac 컴파일러로 컴파일했을때 나오는 파일이다.
이 파일은 JVM이 읽을 수 있는 실행 단위 바이너리이다. 다음과 같은 정보가 담겨있다.