
1. 메모리 구조 개요
JVM은 실행 중 필요한 데이터를 영역별로 나누어 관리한다. 내가 배운 내용은 다음 3가지이다.
- Method Area
- Heap
- Stack
2. Method Area
저장되는 것
- 클래스 메타데이터
- 메서드 바이트코드
- static 변수
특징
- 클래스 로딩 시 생성
- JVM 종료 시 해제
- 일반적인 GC 대상 아님
3. Heap 영역
역할
- 객체와 인스턴스 변수 저장
- GC의 주요 대상
Heap 내부 구조
- Young Generation : Eden, Survivor
- Old Generation
대부분의 객체는 Young에서 생성되고 소멸, 오래 살아남은 객체만 Old로 이동함. 추후에 다룰 예정
4. Stack 영역
저장되는 것
- 메서드 호출 정보 (Stack Frame)
- 지역 변수
- 매개변수
- 참조변수(주소값)
특징
- 쓰레드 별 독립
- 메서드 종료 시 자동 해제
- GC 대상 아님
5. 요약
- JVM 메모리는 역할별로 분리되어 있다
- GC는 Heap만 관리한다
- static과 지역 변수는 GC 대상이 아니다
'Java & Spring > 자바가상머신(JVM)' 카테고리의 다른 글
| Garbage Collection과 메모리 누수 (0) | 2026.01.06 |
|---|---|
| JVM이란 무엇이고, 어떻게 실행되는가 (0) | 2026.01.06 |