🔖 JVM의 Memory Medel (Runtime data Area)
1️⃣ Method Area
(static-zone / none static-zone)
- 메서드의 바이트코드(기계어 코드)가 할당되는 공간
static-zone과 none-static-zone으로 나누어진다.
- static 멤버들은 static-zone에 할당된다.
2️⃣ Heap Area
(Generation)
- 객체가 생성되는 메모리 공간
(new 연산자)
GC(gerbage collector)에 의해서 메모리가 수집된다.
3️⃣ Stack Area(Call Statck Frame Area)
PC register, Native Method Area
- 메서드가 호출되면 메서드의 기계어 코드를 할당 받고(Native Method Area) 메서드가 실행되는 메모리 공간(Call Stack Frame Area)
(지역변수, 매개변수 들이 만들어지는 공간)
PC(Program Counter)에 의해서 현재 실행중인 프로그램의 위치가 관리된다.
LIFO구조로 운영이 되는 메모리 공간(메서드의 호출 순서를 알 수 있다.)
4️⃣ Runtime Constant Pool (Literal Pool)
- 상수 값 할당이 되는 메모리 공간
문자열 중 문자열 상수(Literal:리터럴)가 할당되는 메모리 공간