[Why]
- 위험하기 때문이다. (예측 불가능, 느림)
- 즉시 수행되지 않는다.
- 수행 시점 뿐만 아니라 수행 여부도 보장하지 않는다.
- finalizer는 보안 문제를 일으킬 가능성이 있다.
[When]
- 되도록 사용하지 않는 것을 권장
- 제 때 실행되어야 하는 작업은 반드시 피하라
- 상태를 영구적으로 수정하는 작업은 반드시 피하라
[How]
- AutoCloseable을 구현하고 close 메서드를 호출하는 방법을 사용하라.
- 프로그래머의 실수를 방지하는 용도로 사용하라
close 메서드 호출을 하지 않는 경우에는 객체를 방치하는 것보다 finalizer, cleaner를 통해서 객체를 닫는 안전망을 추가하는 것이 낫다. - 가비지 컬렉터가 접근하지 못하는 네이티브 피어와 연결된 객체를 회수할 때 사용하라. 단 이 경우도 close 메서드를 통해서 회수하는 것이 좋다.
'programming > java' 카테고리의 다른 글
Item 10. equals 일반 규약을 지켜 재정의하라 (0) | 2023.03.28 |
---|---|
Item 9. try-finally 보다는 try-with-resources를 사용하라 (0) | 2023.03.28 |
Item7. 다 쓴 객체 참조를 해제하라 (0) | 2023.03.24 |
Item 6. 불필요한 객체 생성을 피하라 (0) | 2023.03.23 |
Item 5. 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 (0) | 2023.03.23 |