Notice
Recent Posts
Recent Comments
Link
SeouliteLab
[Java] 가비지 컬렉션(Garbage Collection) 본문
Java에서의 가비지 컬렉션(Garbage Collection)은 자동으로 메모리 관리를 수행하여 사용하지 않는 객체를 자동으로 해제하는 기능이다. 이를 통해 메모리 누수를 방지하고 프로그램의 안정성과 성능을 향상시킨다.
가비지 컬렉션의 주요 동작은 다음과 같다:
- 참조 추적(Reference Tracking):
- 가비지 컬렉션은 먼저 모든 객체 간의 참조를 추적한다. 이를 통해 어떤 객체가 아직 참조되고 있는지를 확인한다.
- 불필요한 객체 식별:
- 참조 추적을 통해 더 이상 참조되지 않는 객체인 "가비지"를 식별한다. 이는 주로 참조되지 않는 객체에 대한 모든 참조가 제거되었을 때 발생한다.
- 메모리 해제:
- 가비지로 식별된 객체의 메모리를 해제한다. 이를 통해 해당 객체가 차지하던 메모리 공간이 반환되어 다른 객체가 사용할 수 있게 된다.
Java에서는 가비지 컬렉션을 자동으로 수행하며, 개발자는 명시적으로 메모리를 해제할 필요가 없다. 다만, 객체가 더 이상 필요하지 않을 때 해당 객체에 대한 모든 참조를 제거하는 것이 중요하다. 이는 메모리 누수를 방지하고 가비지 컬렉션의 효율성을 향상시킨다.
예제 코드는 다음과 같다.
public class GarbageCollectionExample {
public static void main(String[] args) {
// 객체 생성
MyClass obj = new MyClass();
// 객체 사용
// 참조 제거
obj = null;
// 가비지 컬렉션 수행됨
}
}
class MyClass {
// 필드와 메서드 정의
}
위의 코드에서 obj는 객체를 참조하고 있지만, 이후에 null로 설정하여 해당 객체에 대한 참조를 제거합니다. 이후에 JVM이 가비지 컬렉션을 수행하여 해당 객체를 해제한다.
가비지 컬렉션은 Java의 강력한 기능 중 하나로서, 메모리 관리를 단순화하고 프로그램의 안정성을 높여준다.
'프로그래밍' 카테고리의 다른 글
[Python/파이썬] 리스트에서 첫번째, 마지막 요소 가져오는 방법 (0) | 2024.02.29 |
---|---|
자바(Java) 프로그래밍 언어 소개 (0) | 2024.02.27 |
[Java] 람다 표현식(Lambda Expression) (0) | 2024.02.27 |
[Java] static(정적) 변수와 메모리 관리 (0) | 2024.02.27 |
[JPA] 낙관적 락(Optimistic Lock)과 비관적 락(Pessimistic Lock) (0) | 2024.02.27 |