JVM (Java Vitual Machine)

Java Byte Code를 OS에 맞게 해석해주는 역할을 수행한다. ByteCode가 수행됨에 있어서 JVM 위에서 OS에 종속적이지 않다.

JVM은 크게 Class Loader, Runtime Data Areas, Excution Engine 3가지로 구성되어 있다.

wiki이미지 참조

Class Loader

런타임 시점에 동적으로 클래스를 로드한다. 즉, 클래스를 처음으로 참조할 때(클래스의 인스턴스가 생성될 때) 해당 클래스를 로드하고 링크하는 역할을 수행한다.

Runtime Data Areas

JVM이 프로그램을 수행하기 위해 OS로부터 별도로 할당 받은 메모리 공간이다. 아래와 같이 구성되어 있다.

1) PC Register 2) JVM 스택영역 3) Native method stack 4) Method Area ( = Class area = Static area) 5) Heap 영역

Excution Engine

클래스를 실행하는 역할을 수행한다.

Reference