[Effective Java] Item 8. finalizer와 cleaner 사용을 피하라 자바의 두 가지 객체 소멸자 finalizer 예측할 수 없고 상황에 따라 위험할 수 있어서 일반적으로 불필요함. 오작동, 낮은 성능, 이식성 문제의 원인이 되기도 함. Java 9부터 deprecated API로 지정되어 cleaner를 대안으로 사용. cleaner finalized 보다는 덜 위험하지만 여전히 예측할 수 없고, 느리고, 일반적으로 불필요함 finalizer 사용 예시 (Java 8 ThreadPoolExecutor) public class ThreadPoolExecutor extends AbstractExecutorService { ... /** * Invokes {@code shutdown..