본문 바로가기
공부/이펙티브자바

[이펙티브자바]item7.다 쓴 객체 참조를 해제하라.

by 띵커베르 2023. 1. 13.
728x90
  • 자바는 가비지컬렉터가 다 쓴 자원을 자동적으로 회수해 가지만 무조건 적인건 아니다
  • 예외적인 상황 stack 클래스
    • 왜? 스택 클래스는 왜 메모리 누수에 취약할까
      • 스택이 자기 메모리를 직접 관리하기 때문.
      • 객체를 담는 elements 배열로 저장소 풀을 만들어 원소들을 관리한다.
      • 활성 역역에 속한건 사용하고 비활성은 사용하지 않는다. 이를 가비지컬렉터가 알 길이 없다.
      • 그래서 다 쓴 원소는 nul 처리를 하자.
  • 캐시 역시 메모리 누수를 일으키는 주범
    • 캐시 생성 후 메모리를 잘 정리하자
    • 조만간 업데이트 예정
  • 리스너(listener) 혹은 콜백(callback)
    • 이것도 조만간 업데이트 예정
  • WeakHashMap
    • 사용하지 않는 객체를 가비지컬렉터가 자동으로 삭제해 주는 맵
    • 주의점: key 를 만들경우 레퍼런스 타입으로 만들어야 한다.

 

 

*힙 프로파일러를 한번 살펴볼때가 된거 같다.

728x90

댓글