Notice
Recent Posts
Recent Comments
Link
쯔이's Dev
static(1) - 자바 메모리 구조 본문
반응형
<자바 메모리 구조>
* 크게 메서드 영역 / 스택 영역 / 힙 영역 이렇게 3가지로 나눌 수 있다.
- 메서드 영역 : 클래스 정보를 보관.
- 스택 : 실제 프로그램이 실행되는 영역. 메서드를 실행할 때마다 스택프레임이 하나씩 쌓인다.
- 힙 : 객체(인스턴스)가 생성되는 영역. new 명령어를 사용하면 이 영역을 사용한다. 배열도 이 영역에 생성된다.
< 메서드 영역(Method Area) >
* 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다.
- 클래스 정보 : 클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드등 모든 실행 코드가 존재한다.
- static 영역 : static 변수들을 보관.
- 런타임 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관.
< 스택 영역(Stack Area) >
- 후입선출(LIFO, Last In First Out) : 나중에 넣은 것이 가장 먼저 나오는 것.
- 자바 실행시 하나의 실행 스택이 생성된다. 각 스택 프레임은 지역변수, 중간 연산 결과, 메서드 호출정보 등을 포함한다.
- 스택 프레임 : 메서드를 하나씩 호출할 때마다 하나의 스택 프레임이 쌓이고, 메서드가 종료되면 해당 스택 프레임이 제거된다.
- 더 정확히는 각 쓰레드별로 하나의 실행 스택이 생성된다. 따라서 쓰레드 수 만큼 스택영역이 생성된다.
< 힙영역(Heap Area) >
- 객체(인스턴스)와 배열이 생성되는 영역. 가비지 컬렉션(GC)이 이루어지는 주요 영역. 더이상 참조되지 않는 객체는 GC에 의해 제거된다.
728x90
반응형