https://inpa.tistory.com/entry/JAVA-☕-JVM-내부-구조-메모리-영역-심화편
가상머신의 동작 방식

- 자바 프로그램을 실행하면 JVM은 OS로부터 메모리를 할당받는다.
- 자바 컴파일러가 자바 소스코드를 자바 바이트코드로 컴파일 한다.
- Class Loader는 동적 로딩을 통해 필요한 클래스들을 로딩 및 링크하여 Runtime Data Area에 올린다.
- Runtime Data Area에 로딩 된 바이트 코드는 Execution Engine을 통해 해석된다.
- 이 과정에서 Execution Engine에 의해 Garbage Collector의 작동과 Thread 동기화가 이루어진다.
자바 가상 머신의 구조
- 클래스 로더
- 실행 엔진(Execution Engine)
- 인터프리터
- JIT 컴파일러(Just - In - Time)
- 가비지 콜렉터(Garbage Collector)
- 런타임 데이터 영역(Runtime Data Area)
- 메소드 영역
- 힙 영역
- PC Register
- 스택 영역
- 네이티브 메소드
- JNI - 네이티브 메소드 인터페이스
- 네이티브 메소드 라이브러리