JVM (Java Virtual Machine)
Java가 어떤 운영체제에서도 실행될 수 있도록 운영체제 상위에서 자바 프로그램을 실행하는 가상 기계이다.

- Class Loader
- 자바 파일 컴파일 후 생성된 클래스 파일들을 RunTime Data Area로 각각 적재
- Execution Engine
- RunTime Data Area에 적재된 클래스들을 기계어로 변경해 명렁어 단위로 실행
- Garbage Collector
- heap 메모리 영역에 생성된 객체들 중에 참조되지 않는 객체들을 탐색 후 제거
- Runtime Data Area
- JVM의 메모리 영역으로 자바애플리케이션을 실행할때 사용되는 데이터들을 적재하는 영역
- Method Area
- 프로그램 시작 시 클래스 정보가 저장되는 영역으로,
- 클래스의 메서드 정보, static 변수 등 저장
- 모든 객체가 공유하는 공용 공간
- Stack Area
- 지역 변수, 파라미터 등이 저장되었다가, 해당 영역의 실행 끝나면 다시 데이터가 스택에서 지워지는 임시적으로 생성된 데이터의 영역
- 객체, 배열을 가리키는 참조형 변수도 이 영역에 생성
- Heap Area
- new 키워드로 생성된 객체와 배열이 생성되는 영역
- PC Register
- Thread가 생성될때마다 생성되는 영역으로, Program Counter
- Native Stack Area
- 자바외 언어로 작성된 네이티브 코드를 위한 메모리 영역
'개발 지식' 카테고리의 다른 글
웹서버 애플리케이션 관점에서의 Thread Pool (0) | 2025.03.21 |
---|---|
NullPointerException(NPE) 런타임 에러 (1) | 2025.03.11 |
이스케이프 시퀀스 (0) | 2025.02.22 |
NumberFormat 런타임 에러 (0) | 2025.02.21 |
InputMismatch 런타임 에러 (0) | 2025.02.21 |