자바

자바 - JVM

개발자 포비 2024. 11. 21. 22:11

JVM 구성요소 

1) Class Loader

 

  • Java 애플리케이션의 동적 클래스 로딩 시스템
  • 주요 기능: 컴파일, 링크, 런타임 클래스 로딩
  • 프로세스:
    1. 소스 코드 컴파일 → Java Byte Code 변환
    2. 런타임 시 필요한 클래스들을 동적으로 메모리에 로드
    3. 클래스 파일의 링킹 및 초기화 수행

 

2) Runtime data area

 

  • Method Area: 클래스 구조, 메타데이터, 상수 풀 저장
  • Heap Area:
    • 객체와 배열 저장 공간
    • Garbage Collection의 주요 대상 영역
  • Stack & PC Register:
    • 스레드별 고유 메모리 영역
    • 지역 변수, 메서드 호출, 실행 상태 관리
  • Native Method Stack:
    • 네이티브(JNI) 메서드 실행 전용 영역

 

3) Execution engine

  • Interpreter:
    • Byte Code를 한 줄씩 실시간 번역
    • 초기 실행 성능 저하의 주요 원인
  • JIT(Just-In-Time) Compiler:
    • 반복 실행되는 코드 블록을 네이티브 코드로 컴파일
    • 성능 최적화를 담당
  • Garbage Collector:
    • 자동 메모리 관리
    • 사용하지 않는 객체 식별 및 제거
    • 메모리 누수 방지

 

https://www.youtube.com/watch?v=kAyQexUHiNc

널널한 개발자 TV - JVM 구성요소 정리