JVM(Java Virtual Machine)은 자바가상머신으로 자바 바이트코드를 실행할 수 있는 주체이다.
운영체제 위에서 동작하는 프로세스로 자바 코드를 컴파일해서 얻은 바이트코드를 해당 운영체제가 이해할 수 있는 기계어로 바꿔 실행시켜주는 역할을 한다.
런타임 시 수행되며 class파일(바이트코드)들을 엮어 Runtime Data Area로 적재하는 역할
메모리에 적재된 클래스들을 기계어로 변경해 명령어단위로 실행하는 역할
(추가 키워드 : JIT, Interpreter)
Heap메모리 영역에 적재된 객체들 중 참조되지 않는 객체를 탐색 후 제거하는 역할
메모리영역으로 자바 어플리케이션을 실행할 때 사용되는 데이터들을 적재하는 역할
자바의 컴파일 과정
컴파일러가 소스코드를 자바 바이트코드로(.class) 변환한다, JVM(자바가상머신)이 그 바이트코드를 기계어로 변환하여 인터프리터 방식으로 어플리케이션을 실행한다.