JAVA
[OOP] JVM의 메모리 구조
ewok
2023. 3. 1. 20:11
JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고, 이를 여러 영역으로 나누어 관리한다.
메서드 영역
클래스파일(.class)을 읽고 분석하여 클래스의 정보와 클래스 변수를 메서드 영역에 저장한다.
호출 스택(Call Stack)
메서드가 호출되면 메서드를 위한 메모리가 할당되며, 메서드가 작업을 수행하는 동안 지역변수들과 연산의 중간결과 등이 저장된다. 메서드가 작업을 마치면 할당되었던 메모리 공간은 반환되어 비워진다.
호출 스택의 특징
- 메서드가 호출되면 수해엥 필요한 메모리를 스택에 할당받는다.
- 메서드가 수행을 마치면 사용했던 메모리를 반환하고 스택에서 제거된다.
- 호출스택의 제일 위에 있는 메서드가 현재 실행 중인 메서드이다.
- 아래에 있는 메서드가 바로 위의 메서드를 호출한 메서드이다.
힙(Heap)
인스턴스가 생성되는 공간으로 new 연산자에 의해 생성되는 배열과 객체는 모두 여기에 생성된다.