Effective Java item 8
finalizer 와 cleaner 사용을 피하라 자바는 두 가지 객체 소멸자를 제공한다. 그중 finalizer는 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요하다. 오동작, 낮은 성능, 이식성 문제의 원인이 되기도 한다. finalizer는 나름의 쓰임새가 있긴 하지만 기본적으로 쓰지 말아야 한다. 그래서 자바 9에서는 finalizer를 사용 자제 API로 지정하고 cleaner를 그 대안으로 소개했다. (하지만 자바 라이브러리에서도 finalizer를 여전히 사용한다.) cleaner는 finalizer보다는 덜 위험하지만, 여전히 예측할 수 없고, 느리고, 일반적으로 불필요하다. 자바의 finalizer와 cleaner는 C++의 파괴자와는 다른 개념이다. C++에서의 파괴자는..