less than 1 minute read

Untitled

메모리 구조

자바뿐만이 아니라 모든 프로그램이 구동되기 위해서는 프로그램 구동시에 운영체제로부터 메모리(RAM) 공간을 할당받아야 한다. 그리고 이러한 메모리는 무제한이 아니라 한정되어 있다. 그렇기에 한정된 메모리를 최대한 효율적으로 사용하는 프로그램을 작성해야 하고 프로그램을 잘못 작성하게되면 프로그램이 매우 느려진다던지, 프로그램이 갑자기 꺼지는등의 각종 문제가 발생할 수 있다. 자바로 만들어진 프로그램은 JVM을 통해 실행되고 이 JVM은 프로그램을 동작할 때 OS로부터 메모리를 할당한다.

스택(Stack)영역

당 영역은 매서드의 실행 과정에서 임시로 할당 되는 메모리를 다룬다.

매서드를 호출 할 때 마다 각각의 스택 프레임이 생성되며,

지역 변수와 매개변수가 이 영역에 저장된다.

Static 영역이라고도 하며 전역 변수와 정적 멤버변수(static 변수)가 저장되는 영역입니다.

힙 영역 (Heap)

자바 프로그램에서 사용되는 모든 인스턴스 변수(객체)들이 저장되는 영역이며 자바에서는 new를 사용하여 객체를 생성하면 힙 영역에 저장된다. 힙 영역은 메모리 공간이 동적으로 할당되고 해제되며 메모리의 낮은 주소에서부터 높은 주소로 할당이 이루어진다.

매서드 (Method)(정적) 영역

해당 영역은 쿨래스 정보 (클래스 명, 부모 클래스 명, 매서드와 변수 ) 와 함께

정적 멤버 변수(static) 와 전역변수를 저장하는 공간이다.

이 영역은 JVM이 시작 될 때 생성되며, JVM 이 종료되면 해제된다.

Tags:

Categories:

Updated:

Leave a comment