JVM 메모리 구조 |
---|
Method Area |
매서드 영역 : 클래스 변수를 포함한 클래스 데이터를 저장한다. |
Call stack |
호출 스택 : 매서드 작업에 필요한 메모리가 할당된다. |
Heap |
힙 : 인스턴스 변수들이 생성 저장된다. |
표와같이 3가지 주요 영역으로 나뉜다.
Call stack 에서는 프로그램의 순서에 맞게 순차적으로 method를 호출하고, 호출하면서 Heap과 Method Area에서 필요한것을 가져와 Call stack에 필요한 메모리 영역을 만든다.
제일 최근에 호출 된 method만 실행하고 실행이 종료되면 메모리를 반환하고 바로 전 method를 이어서 수행한다.
프로그램 설계 오류로 method가 무한히 불려올때, Call stack overflow가 발생하며 비정상적으로 프로그램이 종료된다.