카테고리 없음
[java] 메모리 구조
seandoesdev
2023. 8. 8. 12:56
Stack Area
- 클래스 내의 메소드에서 사용되는 정보들이 저장되는 공간이다.
- 매개변수, 지역변수, 리턴값 등이 저장되며 LIFO방식으로 메소드 실행 시 저장되었다가 실행이 완료되면 제거된다.
Method Area
- 클래스와 메소드, 클래스 변수와 상수(final) 정보 등이 저장되는 공간이다.
- 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 *.class 파일을 읽고 분석하여 클래스에 대한 정보(클래스 데이터)를 이 공간에 저장한다.
Heap Area
- New 명령어를 통해 생성된 인스턴스와 배열 등의 참조형 변수정보가 저장되는 공간이다.
- Method Area에 올라온 클래스들만 생성이 가능하다.
- GC의 대상이 된다.
PC Register Area
- 스레드마다 하나씩 생성한다.
- JVM 명령의 주소값이 저장되는 공간이다.
Native Method Stack Area
- 자바 외 다른 언어의 호출을 위해 할당되는 영역이다.