자바의 메모리 구조
메서드 영역
메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다.
이 영역은 프로그램의 모든 영역에서 공유한다.
- 클래스 정보 :
클래스의 실행 코드(바이트 코드)
,필드
,메서드와 생성자 코드
등 모든 실행 코드 - static 영역 :
static 변수
보관 - 런타임 상수 풀 : 프로그램을 실행하는데 필요한
공통 리터럴 상수
를 보관
스택 영역
자바 실행 시, 하나의 실행 스택이 생성된다.
각 스택 프레임은 지역 변수
, 중간 연산 결과
, 메서드 호출 정보
등을 포함한다.
- 스택 프레임: 스택 영역에 쌓이는 네모 박스가 하나의 스택 프레임이다.
메서드를 호출할 때 마다 하나의 스택 프레임이 쌓이고, 메서드가 종료되면 해당 스택 프레임이 제거된다.
스택 영역은 더 정확히는 각 스레드별로 하나의 실행 스택이 생성된다.
따라서 스레드 수 만큼 스택이 생성된다.
힙 영역
객체(인스턴스)와 배열이 생성되는 영역이다.
가비지 컬렉션(GC)이 이루어지는 주요 영역이며, 더 이상 참조되지 않는 객체는 GC에 의해 제거된다.
이 포스트는 “김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성” 강의를 듣고 작성하였습니다!
This post is licensed under CC BY 4.0 by the author.