JVM(Java Virtual Machine)은 자바 가상머신이다.
가상머신이란 뜻은 여러가지가 있지만, 대표적으로 물리적 머신을 소프트웨어로 유사하게 구현한 것이라고 할 수 있다.
자바는 원래 WORA(Write Once, Run Anywhere)를 구현하기 위해 가상머신을 기반으로 동작하게 설계된 것이다. 그래서 자바 바이트코드를 실행하는 모든 종류의 하드웨어에서 JVM을 동작시켜 자바 코드를 수정하지 않고도 동작되는 것이다.
JVM은 자바 소스파일을 컴파일 하여 나온 자바 바이트코드를 해석하고 실행하는 역할을 수행한다.
자바 코드로 작성된 프로그램은 다음과 같은 과정을 통해 실행된다.
자바 소스파일은 자바 컴파일러가 JVM이 이해할 수 있는 언어인 자바 바이트 코드로 변환된다.
그러면 클래스로더(Class Loader)가 자바 바이트코드를 런타임 데이터 영역(Runtime Data Area)에 로드하고 실행엔진이 자바 바이트코드를 명령어 단위로 읽어서 실행하게 된다.