🧠 자바의 메모리 구조 쉽게 이해하기

자바 프로그램이 실행되면 내부적으로 다양한 메모리 영역이 자동으로 생성되어 프로그램이 효율적이고 안정적으로 실행되도록 돕습니다. 이 구조를 이해하면, 메모리 오류나 성능 문제를 더 쉽게 파악하고 해결할 수 있습니다.


🗂️ 자바 메모리 구조란?

자바는 JVM(Java Virtual Machine) 위에서 동작하며, JVM은 프로그램을 실행하기 위해 다음과 같은 5가지 메모리 영역을 사용합니다:

  1. 📦 Method Area (메서드 영역)
  2. 🧊 Heap Area (힙 영역)
  3. 📚 Stack Area (스택 영역)
  4. 🔁 PC Register (PC 레지스터)
  5. 🛠️ Native Method Stack (네이티브 메서드 스택)

1️⃣ 📦 Method Area – 클래스 정보를 담는 창고

항목 설명
저장되는 것 클래스 이름, static 변수, final 상수, 메서드 코드 등
특징 모든 스레드가 공유, JVM 시작 시 생성

📌 예제 코드:

class MyClass {
    static int count = 0;     // 메서드 영역에 저장됨
    final int MAX = 100;      // 상수 정보도 이 영역에 저장
}

🧠 비유: ‘교실의 칠판’처럼 모든 사람이 참고하는 고정된 정보들이 들어있습니다.


2️⃣ 🧊 Heap Area – 객체가 사는 공간