클래스 파일에 서술된 정보를 가상 머신이 활용하려면 먼저 로드해야한다. 가상 머신이 클래스 파일을 로드하는 방법과 그 정보를 가상 머신 안에서 활용하는 방법이 이번 장의 주제이다.
JVM은 클래스를 설명하는 데이터를 클래스 파일로부터 메모리로 읽어들이고, 이 데이터를 검증, 변환, 초기화하고 나서 최종적으로 가상 머신이 곧바로 사용할 수 있는 자바 타입을 생성한다. 이과 정을 클래스 로딩 메커니즘이라고 한다. → 런타임 클래스 로딩 (컴파일 클래스 로딩에 비해 성능은 떨어질 수 있으나 유연하다.)
가상머신의 메모리에 로드되는 걸 시작으로 다시 언로드 될때까지 다음과 같은 생애 주기를 거친다.
클래스를 로딩하는 시점은 VM 구현마다 다를 수 있고, 그 중 엄격하게 지켜지는 경우 몇가지도 있다.
JVM이 클래스 로딩하는 전체 과정은 다음과 같다.
각 단계에 대해 알아보자.
JVM은 로딩 단계에서 다음과 같은 일을 한다.