JVM

자바코드가 실행되는 과정

  1. Java Source : 사용자가 작성한 Java 코드(.java)
  2. Java Compiler : Java Source 파일을 JVM이 해석할 수 있는 Java Byte Code로 변경한다.
  3. Java Byte Code : Java Compiler에 의해 컴파일된 결과물이다.(.class)
  4. Class Loader : JVM 내로 .class 파일들을 로드하여 Runtime Data Areas에 배치한다.
  5. Execution Engine : 로드된 클래스의 Bytecode를 해석(Interpret)한다.
  6. Runtime Data Area : JVM이라는 프로세스가 프로그램을 수행하기 위해 OS에서 할당 받은 메모리 공간이다.

Runtime Data Area의 메모리 구조

Heap Area

Heap Area와 GC

JDK버전과 GC

Reference