Method Area: 클래스 정보, 메타데이터, 정적 변수 등이 저장됩니다.
Heap Area: 객체와 배열이 저장됩니다. 이 영역은 가비지 컬렉션의 대상입니다.
Stack Area: 각 스레드에 대한 메서드 호출과 로컬 변수 정보가 저장됩니다.
PC Registers: 현재 실행 중인 명령의 주소를 저장합니다.
Native Method Stack: 네이티브 메서드의 호출 정보가 저장됩니다.
4. 실행 엔진(Execution Engine)
바이트코드는 실행 엔진에 의해 해석되거나 Just-In-Time (JIT) 컴파일러를 통해 네이티브 코드로 변환되어 실행됩니다.
5. 네이티브 인터페이스
자바 네이티브 인터페이스(Java Native Interface, JNI)를 통해 네이티브 라이브러리와 상호작용할 수 있습니다.
6. 실행과 종료
프로그램이 실행되면, 메서드 호출, 객체 생성, 가비지 컬렉션 등이 JVM 내에서 관리됩니다.
프로그램이 종료되면, 사용한 리소스와 메모리는 해제됩니다.
JVM은 이러한 과정을 통해 자바 프로그램을 플랫폼에 독립적으로 실행할 수 있게 해줍니다.