'execution stack'에 해당하는 글 1건

JVM은 용도에 따라 여러 영역으로 나누어 메모리를 관리한다.

과연 어떤식으로 관리하는지 알아보자.

 

 

메서드 영역 (Method Area = Class Area = Static Area)

· 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스 파일(*.class)을 읽어서 분석하여 클래스에 대한 정보를 이곳에 저장함. 이 때, 그 클래스의 클래스 변수도 이 영역에 함께 저장.

 

호출 스택 (Call Stack 또는 Execution Stack)

· 메서드의 작업에 필요한 메모리 공간을 제공.

· 메서드가 호출되면, 메서드 수행에 필요한 메모리 공간을 할당, 메서드가 종료되면 사용하던 메모리를 반환하고 스택에서 제거.

· 메서드가 작업을 수행하는 동안 지역 변수(매개 변수 포함)들과 중간 결과 등을 저장함.

· 호출 스택 맨 위에 있는 메서드가 현재 실행 중인 메서드.

 

힙 (Heap)

· 인스턴스가 생성되는 공간.

· new 연산자에 의해서 생성되는 배열과 객체는 모두 여기에 생성.

 

 

[참고] 자바의 정석

 

 

 

'프로그래밍 > Java' 카테고리의 다른 글

접근 제어자 (Access Modifier)  (0) 2017.08.19
오버로딩과 오버라이딩  (0) 2017.08.14
선언 위치에 따른 변수의 종류  (0) 2017.08.12
클래스와 객체와 인스턴스  (0) 2017.08.11
변수 타입에 따른 기본값  (0) 2017.08.05

WRITTEN BY
김치치즈스마일
세계정복!

,