- 프로그램이 실행되면 JVM은 OS로부터 이 프로그램이 필요로 하는 메모리를 할당 받는다. JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다.
- 자바 컴파일러(javac)가 자바 소스코드(.java)를 읽어 자바 바이트코드(.class)로 변환
- Class Loader를 통해 class파일들을 JVM으로 로딩한다.
- 로딩된 class파일들은 Execution engine을 통해 해석된다.(로딩된 바이트 코드->바이너리 코드로 변경)
- 해석된 바이트 코드는 Runtime Data Area에 배치되어 실질적인 수행이 이루어지게 된다. 이러한 실행 과정 속에서 JVM은 필요에 따라 Thread Synchronization과 GC같은 작업을 한다.
로 변경한다. 일반적인 윈도우 프로그램에서는 컴파일이후 어셈블리 파일이 생성된다.
Runtime data area에 배치된다. 일반적인 윈도우 프로그램의 경우 Load는 os가 주도
Bytecode가 Binary Code로 변경된다.
생성되었는지 확인, 검증 실패시 런타임 에러