자바는 finalizer와 cleaner 두 가지 객체 소멸자를 제공한다.finalizer : 예측할 수 없고, 상황에 따라 위험할 수 있어 일반적으로 불필요하다.cleaner : finalizer보다는 더 위험하지만, 여전히 예측할 수 없고, 느리고, 일반적으로 불필요하다.finalizer와 cleaner는 하나의 자원의 소유자가 close 메서드를 호출하지 않는 것에 대비한 안전망 역할이다.FileInputStream, FileOutputStream, ThreadPoolExecutro가 대표적이다.cleaner와 finalizer는 안정망 역할이나 중요하지 않은 네이티브 자원 회수용으로만 사용하자. 물론 이런 경우라도 불확실성과 성능 저하에 주의해야한다.네이티브 피어(native peer)와 연결된 ..