JVM은 어떻게 구성될까?

JVM의 구성 요소

  1. 클래스 로더
  2. 실행 엔진
  3. GC
    • 사용되지 않는 메모리를 자동으로 회수한다.
    • 동적으로 할당된 객체 중에서 참조되지 않은 객체를 탐색 후 제거한다.

  4. 런타임 데이터 영역
    • 힙, 메서드1, 스택 영역과 PC 레지스터, 네이티브 메서드 스택2으로 구성된다.
    • 힙, 메서드 영역은 모든 스레드가 공유하고, 스택 영역, PC 레지스터, 네이티브 메서드 스택은 스레드마다 독립적으로 할당받는다.

1메서드 영역: 클래스 수준의 정보(클래스 메타데이터, 정적 변수 등)를 저장한다. Static 영역이라고도 불린다.
2네이티브 메서드 스택: Java 이외의 언어(C, C++, 어셈블리 등)로 작성된 네이티브 코드를 실행할 때 사용되는 메모리 영역.