-
Javac 자바 컴파일러
- .java 파일 (소스 코드)를 .class 파일 (바이트 코드)로 컴파일 한다.
Class Loader
- .class 파일을 Runtime Data Area로 로드(적재)시킨다.
Method Area
- JVM이 시작될 때 생성되는 공간으로 바이트 코드가 Method Area에 저장된다.
- 클래스, 변수, static으로 선언한 변수가 저장되고 모든 쓰레드가 데이터를 공유하는 영역이다.
Heap
- 동적으로 생성된(new 연산) 인스턴스 변수가 저장되는 공간이다.
- 가비지 컬렉터의 대상이 되는 공간이다.
Stack
- 지역변수, 메서드의 매개변수(파라미터), 임시적으로 사용되는 변수, 메서드의 정보가 저장되는 영역이다.
PC Register
- 쓰레드가 시작될 때 생성되며, 현재 수행중인 JVM의 명령어 주소를 저장하는 공간이다.
Native Method Stack
- Java가 아닌 다른 언어로 작성된 코드를 위한 공간이다.
Excution Engine
- 로드된 클래스 파일의 바이트 코드를 실행하는 엔진이다.
Native Method Interface
- JVM에 의해 실행되는 코드 중 네이티브로 실행하는 것이 있으면, 해당 네이티브 코드를 호출 또는 호출 될 수 있도록 하는 프레임워크
Native Method Libraries
참고