Skip to content

Latest commit

 

History

History
25 lines (15 loc) · 1.85 KB

jvmm.md

File metadata and controls

25 lines (15 loc) · 1.85 KB

JVM 메모리 모델

JVM 메모리 모델은 자바 프로그램이 실행되는 과정에서 메모리가 어떻게 할당되고 관리되는지를 정의합니다.

Method Area(메서드 영역)

이 영역은 JVM이 시작될 때 생성되며, 각 클래스와 인터페이스에 대한 런타임 상수 풀, 필드와 메서드 데이터, 생성자 등의 코드를 저장합니다.

Heap Area(힙 영역)

모든 객체 인스턴스와 배열이 이 영역에 할당됩니다. 이 영역은 JVM의 여러 스레드가 공유하며, 가비지 컬렉터가 활동하는 곳입니다.

Stack Area(스택 영역)

스택 영역은 각 스레드에 대해 JVM이 별도의 런타임 스택을 생성하며, 메서드 호출과 로컬 변수에 대한 정보를 저장합니다. 각 메서드 호출에 대해 스택 프레임이 생성되고, 그 프레임 내에 로컬 변수, 연산 스택, 메서드 호출 및 반환에 대한 정보 등이 저장됩니다.

PC Register(PC 레지스터)

PC 레지스터는 현재 실행중인 JVM 명령의 주소를 저장합니다. 이 레지스터는 각 스레드에 대해 별도로 생성됩니다.

Native Method Stacks(네이티브 메서드 스택)

네이티브 메서드 스택은 JVM이 네티이브 메서드를 처리하는데 사용합니다.

네이티브 메서드: C,C++ 등의 네이티브 언어로 작성된 코드를 호출하는 기능

이러한 영역들은 자바 프로그램이 실행되는 동안 서로 상호작용하며, JVM의 역할은 이 메모리 모델을 통해 자바 프로그램의 실행을 관리하는 것 입니다. 이 메모리 모델은 자바의 플랫폼 독립성, 메모리 관리, 가비지 컬렉션 등의 특징을 가능하게 합니다.