본문 바로가기

JAVA

JAVA_JVM

- Method Area

  - 프로그램 실행 시 클래스 정보가 저장되는 영역

  - .class 파일의 클래스 정보가 올라가는 곳

  - 클래스의 메서드 정보, static 변수, 런타임 상수풀 등이 저장

  - 모든 객체가 공유하는 공용 메모리 영역

 

 

 

- Stack Area

  - 메서드 호출 시 Stack Frame이 생성되는 구조

  - 지역 변수와 메서드 호출 정보가 저장

  - 후입선출(LIFO) 구조

  - 메서드 실행이 끝나면 Stack에서 제거됨

 

 

 

- Heap Area

  - new 키워드로 생성된 객체가 저장되는 영역

  - 객체의 실제 데이터가 저장

public class MemoryExample {

    // static 변수 → Method Area에 저장
    static String schoolName = "Java School";

    public static void main(String[] args) {

        // 지역 변수 dog → Stack Area에 저장
        // new Dog() 객체 → Heap Area에 저장
        Dog dog = new Dog("Coco", 3);

        // main 메서드 호출 정보도 Stack에 쌓임
        dog.introduce();

    } // main 종료 시 Stack 영역의 지역 변수 제거
}

class Dog {

    // 객체의 실제 데이터 → Heap Area에 저장
    String name;
    int age;

    public Dog(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public void introduce() {

        // 지역 변수 message → Stack Area에 저장
        String message = "안녕하세요!";

        System.out.println(message);
        System.out.println("이름: " + name);
        System.out.println("나이: " + age);
    } // introduce() 종료 시 message 제거
}

 

 

'JAVA' 카테고리의 다른 글

JAVA_조건문  (0) 2026.05.21
JAVA_레퍼클래스  (0) 2026.05.20
JAVA_클래스와 객체  (0) 2026.05.19
JAVA_메서드  (0) 2026.05.14
JAVA_배열  (0) 2026.05.13