본문 바로가기

Backend/JAVA

[패캠/JAVA] JVM 메모리 모델

728x90

JVM Memory model(Runtime Data Area)

1. Method Area

메서드의 바이트코드(기계어 코드) 가 할당되는 공간

static-zone과 none-static-zone으로 나누어진다.

static멤버들은 static-zone에 할당된다

2. Heap Area Generation

객체가 생성되는 메모리 공간(new연산자)

GC(garbage collector)에 의해서 메모리가 수집된다

-> 주기적으로 garbage=사용이 끝난 객체 를 없엔다.

-> generation count가 높은것 부터 garbage 수집 될 가능성이 높다

3. Stack Area (Call Stack 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 : 리터럴) 가 할당 되는 메모리 공간

728x90