자바

메모리 영역

코드 죄수 2022. 8. 3. 23:24

스택 영역(stack)

자바에서 프로그램에서 함수(메서드)가 호출되면 메서드에 필요한 지역변수와 매개변수를 스택영역에 저장한다.

이렇게 스택 영역은 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.

 

스택영역에 저장되는 함수의 호출 정보를 스택 프레임이라 칭하며, 정적 메모리 할당으로 컴파일 타임에 크기가 결정된다.

 

후입선출(LIFO, Last-In First-Out) 방식을 사용하고, 메모리의 높은 주소에서 낮은 주소의 방향으로 할당한다.

힙 영역(heap)

힙 영역은 모든 인스턴스 변수가 저장되는 영역이다.

 

힙영역은 사용자가 직접 관리할 수 있는 영역으로 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨으로 런타임에 크기가 결정된다.

 

힙영역은 메모리의 낮은 주소에서 높은 주소방향으로 할당한다.

 

메서드 영역(method)

메서드 영역은 자바 프로그램에서 사용되는 클래스에 대한 정보와 함께 정적변수(static variable)가 저장되는 영역이다.

 

자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일을 읽어 들여 해당 클래스에 대한 정보를 저장한다.