728x90
반응형

1. 클래스 로더(Class Loader)
- 클래스 로더는 JVM이 실행 중에 필요한 클래스 파일을 동적으로 로드하는 역할을 합니다.
- 클래스 로더는 계층 구조로 이루어져 있으며, 최상위 로더부터 하위 로더까지 순차적으로 클래스를 로드합니다.
- 클래스 로더는 클래스 파일을 메모리에 로드하고, 링크와 초기화 과정을 거쳐 실행 가능한 상태로 만듭니다.
2. 실행 엔진(Execution Engine)
- 실행 엔진은 로드된 클래스의 바이트코드를 해석하고 실행하는 역할을 합니다.
- 실행 엔진에는 인터프리터와 JIT(Just-In-Time) 컴파일러가 포함되어 있습니다.
- 인터프리터는 바이트코드를 한 줄씩 해석하여 실행하고, JIT 컴파일러는 자주 사용되는 메서드를 네이티브 코드로 변환하여 실행 속도를 높입니다.
3. 런타임 데이터 영역(Runtime Data Area)
- 런타임 데이터 영역은 JVM이 프로그램을 실행하는 데 필요한 메모리 영역입니다.
- 메서드 영역, 힙, 스택, 레지스터, 네이티브 메서드 스택 등으로 구성됩니다.
- 각 영역은 서로 다른 용도로 사용되며, 프로그램 실행에 필요한 데이터를 저장하고 관리합니다.
4. 가비지 컬렉터(Garbage Collector)
- 가비지 컬렉터는 힙 메모리에서 더 이상 사용되지 않는 객체를 자동으로 제거하는 역할을 합니다.
- 가비지 컬렉터는 다양한 알고리즘을 사용하여 메모리 관리를 최적화합니다.
728x90
반응형
댓글