-
자바 JVM의 런타임 데이터 영역 (Runtime Data Area) 자세한 구조Java 2023. 10. 8. 12:52
이전 및 관련 내용
2023.10.08 - [자바_JAVA] - 자바 JVM 자세히 알아보기
자바 JVM 자세히 알아보기
JVM에 관해 간단히 정리한 글 2023.02.07 - [자바_JAVA] - 자바 JVM, JRE, JDK 자바 JVM, JRE, JDK JDK (Java Development Kit) - JRE + 개발에 필요한 도구(javac, java 등등) JRE (Java Runtime Environment) - JVM이 자바를 동작시킬
developerkwak.tistory.com
Runtime Data Area
- JVM의 메모리 영역으로 자바 애플리케이션을 실행할 때 사용되는 데이터들을 적재하는 영역
- Method Area, Heap Area, Stack Area, PC Register, Native Method Stack로 나뉜다.

- 메서드 영역
- JVM이 시작될 때 생성되는 공간으로 바이트 코드를 처음 메모리 공간에 올릴 때 초기화되는 대상을 저장
- 클래스가 로드될 때 적재되어서 프로그램이 종료될 때까지 저장된다.
- 정적 필드와 클래스 구조만 가지고 있다.
- 런타임 상수 풀 : 상수 자료형을 저장하여 참조하고 중복을 막는 역할을 수행
- 힙 영역
- JVM이 관리하는 프로그램 상에서 데이터를 저장하기 위해 런타임 시 동적으로 할당하여 사용
- new 연산자로 생성되는 클래스와 인스턴스 변수, 배열 타입 등 Reference Type이 저장
- Method Area 영역에 저장된 클래스만이 생성이 되어 적재된다.
- 참조하는 변수나 필드가 없다면 의미 없는 객체가 되기 때문에 이것을 쓰레기로 취급하고 JVM은 쓰레기 수집기인 Garbage Collector를 실행시켜 쓰레기 객체를 힙 영역에서 자동으로 제거
- 스택 영역
- 기본 자료형을 생성할 때 저장하는 공간으로, 임시적으로 사용되는 변수나 정보들이 저장되는 영역
- 각 스레드마다 하나씩 존재하며, 스레드가 시작될 때 할당된다.
- PC 레지스터
- 쓰레드가 시작될 때 생성되며, 현재 수행중인 JVM 명령어 주소를 저장하는 공간
- 네이티브 메서드 스택
- 자바 코드가 컴파일되어 생성되는 바이트 코드가 아닌 실제 실행할 수 있는 기계어로 작성된 프로그램을 실행시키는 영역
- 네이티브 코드를 실행시키는 공간
- JNI가 사용되면 네이티브 메서드 스택에 바이트 코드로 전환되어 저장

출처)
'Java' 카테고리의 다른 글
JAVA 접근 제어자(access modifier) (0) 2023.10.08 자바 Garbage Collection에 대한 개념 (0) 2023.10.08 자바 알파벳과 아스키코드 (0) 2023.08.13 자바 데이터 타입 (0) 2023.08.13 자바 예외 종류 및 Exception 처리 (0) 2023.08.13