본문 바로가기
책/이펙티브 자바 3판

[아이템 7] 다 쓴 객체 참조를 해제하라.

by eunyoung 2023. 4. 19.

이펙티브 자바 2장 - 객체의 생성과 파괴

[아이템 7] 다 쓴 객체 참조를 해제하라.


GC가 다 쓴 객체를 회수해 간다고 메모리 관리에 신경을 안 쓰면 안된다 -> 해결책 : 해당 객체의 참조를 다 사용했을 때는 null 처리(참조 해체)를 하면 됨.

위 코드는 메모리 누수의 문제를 가지고 있는 코드

 

 


객체 참조를 null 처리를 하는 것은 아주 예외적인 상황에 발생해야 함 

예외적인 상황 1 - 자기 메모리를 직접 관리하는 클래스라면 항상 메모리 누수에 주의해야 함.

 

원소를 다 사용한 즉시 그 원소가 참조한 객체들을 다 null 처리를 해줘야 함.

 

 

예외적인 상황 2 - 캐시

 

해결책 : WeakHashmap을 이용해서 캐시를 만듦  / 백그라운드 스레드를 활용

 

예외적인 상황 3 - 리스너, 콜백

 

해결책 : 약한 참조(weak reference)로 저장