[java] 메모리 관리 용어 해설

이 블로그 포스트에서는 Java에서 사용되는 메모리 관리 용어들을 설명하고 예제를 통해 보다 쉽게 이해할 수 있도록 하겠습니다.

목차

  1. 힙 메모리
  2. 스택 메모리
  3. 가비지 컬렉션

힙 메모리

힙 메모리는 Java 프로그램에서 동적으로 생성된 객체와 배열이 저장되는 영역입니다. 이 영역은 가비지 컬렉션에 의해 관리되며, 런타임 시 필요에 따라 크기가 조절됩니다.

// 예제
public class HeapMemoryExample {
    public static void main(String[] args) {
        String str = new String("Hello");
        int[] arr = new int[5];
    }
}

위 예제에서 strarr 객체는 힙 메모리에 저장됩니다.


스택 메모리

스택 메모리는 메서드 호출과 로컬 변수들이 저장되는 영역입니다. 각 메서드 호출 시 해당 메서드의 로컬 변수들이 스택 프레임에 저장되며, 메서드가 종료되면 해당 프레임이 제거됩니다.

// 예제
public class StackMemoryExample {
    public static void main(String[] args) {
        int x = 5;
        int y = calculateSquare(x);
    }

    public static int calculateSquare(int num) {
        return num * num;
    }
}

위 예제에서 xy 변수는 스택 메모리에 저장되며, calculateSquare 메서드의 호출도 스택에 쌓입니다.


가비지 컬렉션

가비지 컬렉션은 더 이상 사용되지 않는 객체들을 자동으로 메모리에서 제거하는 Java의 기능입니다. 이를 통해 메모리 누수를 방지하고, 효율적인 메모리 관리가 가능해집니다.

정확한 가비지 컬렉션의 동작은 Java의 구현체에 따라 다르지만, 보통 더 이상 참조되지 않는 객체들이 메모리에서 해제됩니다.


이상으로 Java 메모리 관리에 사용되는 주요 용어들을 간략히 설명해 보았습니다. 부족한 부분이 있더라도 추가적인 학습을 통해 보다 깊이 있는 이해를 할 수 있습니다.

유용한 참고 자료: Java Memory Management

감사합니다!