이펙티브자바 item8 finalizer와 cleaner의 사용을 피하라.
1. Java의 객체 소멸자 종류 finalizerfinalize() 메소드 구현 가능, 객체가 GC 대상이 되면 호출실행 시점 예측 불가, 성능 저하, 보안 문제, GC 구현마다 동작 차이사용하지 않음cleanerCleaner를 통해 등록된 Runnable 실행, finalizer 대체즉시 실행 보장 없음, 백그라운드 GC 스레드에서 수행제한적 사용 가능, 즉시 실행이 필요한 작업에는 부적합차이점 요약finalizer : 언어 명세에서 스레드나 시점 명시 없음 → 예측 불가, 위험cleaner : 실행 스레드를 어느 정도 제어 가능, 백그라운드에서 수행, 즉시 수행 보장 없음2. 실행하지 말아야 하는 이유실행 시점 불확실GC가 객체를 수집할 때만 실행즉시 실행 보장이 없음 → 제때 수행되어야 하는 작업..
더보기