프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당 받는다.
JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.
자바 컴파일러(javac)가 자바 소스 코드(.java)를 읽어 들여 자바 바이트 코드(.class)로 컴파일한다.
Class Loader를 통해 class파일들을 JVM으로 로딩 한다.
로딩 된 class파일들은 Execution engine을 통해 해석된다.
해석된 바이트 코드는 Runtime Data Area에 배치되어 실질적인 수행이 이루어지게 된다.
이러한 실행 과정 속에서 JVM은 필요에 따라 Thread Synchronization과 GC같은 관리 작업을 수행한다.
