-
[Java] 메모리 구조프로그래밍/JAVA 2022. 8. 1. 22:53728x90
자바 프로그램이 실행되면, JVM은 운영체제로부터 해당 프로그램을 수행할 수 있도록 필요한 메모리를 할당받는다.
이렇게 할당 받은 메모리를 JVM은 용도에 따라 메소드 영역, 힙 영역, 스택 영역으로 구분한다.
1. 메소드(method) 영역
메소드(method) 영역은 자바 프로그램에서 사용되는 클래스에 대한 정보와 함께 클래스 변수가 저장되는 영역이다.
JVM은 자바 프로그램에서 특정 클래스가 사용되면 해당 클래스의 클래스 파일(*.class)를 읽어들여, 해당 클래스에 대한 정보를 메소드 영역에 저장한다.
2. 힙(heap) 영역
힙(heap) 영역은 자바 프로그램에서 사용되는 모든 인스턴스 변수가 저장되는 영역이다.
JVM은 자바 프로그램에서 new 키워드를 사용하여 인스턴스가 생성되면, 해당 인스턴스의 정보를 힙 영역에 저장한다.
힙 영역은 메모리의 낮은 주소에서 높은 주소의 방향으로 할당되고, 프로그램이 종료시까지 영구적으로 저장된다.
3. 스택(stack) 영역
스택(stack) 영역은 자바 프로그램에서 메소드가 호출될 때 메소드의 스택 프레임이 저장되는 영역이다.
JVM은 자바 프로그램에서 메소드가 호출되면, 메소드의 호출과 관계되는 지역 변수와 매개변수를 스택 영역에 저장하고
이렇게 스택 영역은 메소드의 호출과 함께 할당되며, 메소드의 호출이 완료되면 소멸된다.
참고 : http://tcpschool.com/java/java_array_memory
728x90'프로그래밍 > JAVA' 카테고리의 다른 글
[Java] 조건문 if (0) 2022.08.02 [Java] Math 클래스 (0) 2022.08.01 [Java] Scanner 클래스 (0) 2022.08.01 [Java] 연산자(operator) (0) 2022.07.31 [Java] 타입(Type) (0) 2022.07.31