728x90
- 자바는 가비지컬렉터가 다 쓴 자원을 자동적으로 회수해 가지만 무조건 적인건 아니다
- 예외적인 상황 stack 클래스
- 왜? 스택 클래스는 왜 메모리 누수에 취약할까
- 스택이 자기 메모리를 직접 관리하기 때문.
- 객체를 담는 elements 배열로 저장소 풀을 만들어 원소들을 관리한다.
- 활성 역역에 속한건 사용하고 비활성은 사용하지 않는다. 이를 가비지컬렉터가 알 길이 없다.
- 그래서 다 쓴 원소는 nul 처리를 하자.
- 왜? 스택 클래스는 왜 메모리 누수에 취약할까
- 캐시 역시 메모리 누수를 일으키는 주범
- 캐시 생성 후 메모리를 잘 정리하자
- 조만간 업데이트 예정
- 리스너(listener) 혹은 콜백(callback)
- 이것도 조만간 업데이트 예정
- WeakHashMap
- 사용하지 않는 객체를 가비지컬렉터가 자동으로 삭제해 주는 맵
- 주의점: key 를 만들경우 레퍼런스 타입으로 만들어야 한다.
*힙 프로파일러를 한번 살펴볼때가 된거 같다.
728x90
'공부 > 이펙티브자바' 카테고리의 다른 글
[이펙티브자바]item9.try-finally보다는 try-with-resources를 사용하라. (0) | 2023.01.17 |
---|---|
[이펙티브자바]item8.finalizer와 cleaner 사용을 피하라. (0) | 2023.01.17 |
[이펙티브자바]item6.불필요한 객체 생성을 피하라 (0) | 2023.01.13 |
[이펙티브자바]item5.자원을 직접 명시하지 말고 의존 객체 주입을 사용하라. (0) | 2023.01.13 |
[이펙티브 자바]item4.인스턴스를 막으려거든 private 생성자를 사용하라. (0) | 2023.01.13 |
댓글