[Java] 메모리 구조

Donghyun Kim·2022년 7월 11일
0

Method Area

JVM이 실행되면서 생기는 공간이다.
Class 정보, 전역변수 정보, Static 변수 정보가 저장되는 공간이다.
Runtime Constant Pool 에는 말 그대로 '상수' 정보가 저장되는 공간이다.
모든 스레드에서 정보가 공유된다.

Heap

new 연산자로 생성된 객체, Array와 같은 동적으로 생성된 데이터가 저장되는 공간
Heap에 저장된 데이터는 Garbage Collector 가 처리하지 않는한 소멸되지 않는다.
Reference Type 의 데이터가 저장되는 공간
모든 스레드에서 정보가 공유된다.

Stack

지역변수, 메소드의 매개변수와 같이 잠시 사용되고 필요가 없어지는 데이터가 저장되는 공간
Last In First Out, 나중에 들어온 데이터가 먼저 나간다
만약, 지역변수 이지만 Reference Type일 경우에는 Heap 에 저장된 데이터의 주소값을 Stack 에 저장해서 사용하게 된다.
스레드마다 하나씩 존재한다.

PC Register

스레드가 생성되면서 생기는 공간
스레드가 어느 명령어를 처리하고 있는지 그 주소를 등록한다.
JVM이 실행하고 있는 현재 위치를 저장하는 역할

##텍스트 Native Method Stack

Java 가 아닌 다른 언어 (C, C++) 로 구성된 메소드를 실행이 필요할 때 사용되는 공간

profile
"Hello World"

0개의 댓글