CS 정리

JVM, Java virtual machine

문쿼리 2025. 4. 11. 01:26

JVM, Java virtual machine

java 프로그램을 실행하기 위한 가상머신이다.

동작원리

  • 컴파일 :코드(.java)를 Bytecode(.class)로 컴파일하고 .class파일을 jvm이 실행한다.
  • JVM 실행 :
    1) 클래스 로더(ClassLoader) 가 클래스 로딩
      : JVM 메모리로 동적으로 로딩(지연로딩)
        jdk 핵심클래스 -> extention 클래스 -> 사용자 작성 클래스 순
    2) 바이트코드 검증(Verifier) 으로 보안 검증
      : 올바른 코드인지 검증하여 악성 클래스 차단
    3) 런타임 데이터 영역에 클래스/객체 배치
      : 실행에 필요한 메모리 구조, JVM 종료 시 소멸 ( Heap, Method Area, JVM Stack, Program Counter (PC) Register, Native Method Stack)
    4) Execution Engine에 의해 인터프리터 or JIT 컴파일러가 코드 실행
      : 인터프리터로 해석 및 실행 -> 반복 실행의 경우 JIT으로 컴파일 및 캐싱 -> 즉시 실행으로 성능향상
  • GC 메모리 관리
  • 프로그램 종료 후 리소스 정리

특징

  • 플랫폼 독립성 : Write once, run anywhere.
  • 자동 메모리 관리 : GC
  • 보안성 : JVM이 메모리 접근을 통제
  • 멀티스레딩 : JVM 레벨에서의 멀티스레딩
  • 클래스 로딩 동적 지원 : 실행중 필요한 클래스만 로딩
  • 성능 최적화 : JIT 컴파일러를 통한 런타임 최적화

종류

OpenJdk, Hotspot, GraalVM, correcto 등 무료/유료 라이센스들이 여럿 있으며, 다양한 특징과 환경을 가지고 있기 때문에 필요에 따라 선택하여 사용하는 안목이 필요함

'CS 정리' 카테고리의 다른 글

STW, Stop the world 제어하기  (2) 2025.04.13
메세지 큐, Message Queue  (0) 2025.04.13
메모리 단편화, Fragmentation  (0) 2025.04.12
GC, Garbage Collection  (0) 2025.04.12
java Collection, Hash 연관 정리  (0) 2025.04.07