Java Virtual Machine, 자바 가상 머신의 약자
자바 어플리케이션을 크래스 로더를 통해 읽어 들여서 자바 API와 함께 실행한다.
JAVA와 OS 사이에서 중개자
역할을 수행한다.
JAVA가 OS에 구애 받지 않고 재사용을 가능하게 해준다.
메모리 관리를 수행한다 (Garbage collection)
클래스 로더
JVM 내로 클래스 파일을 불러오고 링크를 통해 배치하는 작업을 수행하는 모듈
실행 엔진
클래스 로더가 배치시킨 클래스를 실행시키는 역할
인터프리터
실행 엔진이 자바 바이트 코드를 실행하는 방식, 한 줄 씩 수행
JIT
Just In Time. 인터프리터 방식의 단점을 보완하기 위해 도입한 컴파일러
Garbage Collector
Garbage Collection을 수행하는 모듈
JVM은 필요에 따라 아래 실행과정 중 쓰레드 동기화와 GC와 같은 관리 작업을 수행한다.
JVM은 해당 메모리를 용도에 따라 여러 영역으로 나눠서 관리한다.