본문 바로가기
JAVA&스프링

JAVA JVM 런타임 데이터 영역 & 메소드 영역/데이터 영역(Method area)

by 개발고구마 2025. 6. 13.

런타임 데이터 영역

- 메소드 영역

- 힙 영역

- 쓰레드 단위 별 영역(스택 영역, PC레지스터)

 

메소드 영역

- JVM이 읽어들인 각종 타입 정보, 상수, 정적 변수 정보가 저장되는 영역

- JIT컴파일러가 번역한 기계어 코드를 캐싱하기 위한 메모리 공간으로 활용

- Java 8 부터는 PermGen이 아니라 Metaspace에 속함

    Metaspace는 JVM힙이 아니라 네이티브 메모리에서 관리하며 크기가 동적으로 달라질 수 있음

 

Runtime constant pool

- 클래스 버전, 필스, 메서드, 인터페이스 등 클래스 파일에 포함된 정보 및 각종 리터럴, 심볼 참조가 저장되는 영역

- 클래스 로더가 클래스를 로드할 때 상기 정보들을 저장

- 동적으로 운영되며 런타임에 새로운 상수가 추가될 수 있음

 

터미널 - out\production\프로젝트이름\Main.class 파일 javap -v Main 을 치면 정보들이 나옴

이것만 쳐봐도 constant pool에 들어간애들이 얼마나 많은지 확인 가능

 

힙영역과 스택은 따로 설명