Java & Spring/자바가상머신(JVM)

JVM 메모리 구조

승주우에요 2026. 1. 6. 09:57

메모리 구조

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 대상이 아니다