[java] 메모리 관리 용어 해설
이 블로그 포스트에서는 Java에서 사용되는 메모리 관리 용어들을 설명하고 예제를 통해 보다 쉽게 이해할 수 있도록 하겠습니다.
목차
힙 메모리
힙 메모리는 Java 프로그램에서 동적으로 생성된 객체와 배열이 저장되는 영역입니다. 이 영역은 가비지 컬렉션에 의해 관리되며, 런타임 시 필요에 따라 크기가 조절됩니다.
// 예제
public class HeapMemoryExample {
public static void main(String[] args) {
String str = new String("Hello");
int[] arr = new int[5];
}
}
위 예제에서 str
과 arr
객체는 힙 메모리에 저장됩니다.
스택 메모리
스택 메모리는 메서드 호출과 로컬 변수들이 저장되는 영역입니다. 각 메서드 호출 시 해당 메서드의 로컬 변수들이 스택 프레임에 저장되며, 메서드가 종료되면 해당 프레임이 제거됩니다.
// 예제
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;
}
}
위 예제에서 x
와 y
변수는 스택 메모리에 저장되며, calculateSquare
메서드의 호출도 스택에 쌓입니다.
가비지 컬렉션
가비지 컬렉션은 더 이상 사용되지 않는 객체들을 자동으로 메모리에서 제거하는 Java의 기능입니다. 이를 통해 메모리 누수를 방지하고, 효율적인 메모리 관리가 가능해집니다.
정확한 가비지 컬렉션의 동작은 Java의 구현체에 따라 다르지만, 보통 더 이상 참조되지 않는 객체들이 메모리에서 해제됩니다.
이상으로 Java 메모리 관리에 사용되는 주요 용어들을 간략히 설명해 보았습니다. 부족한 부분이 있더라도 추가적인 학습을 통해 보다 깊이 있는 이해를 할 수 있습니다.
유용한 참고 자료: Java Memory Management
감사합니다!