Finalizer는 예측할 수 없고, 상황에 딸하 위험할 수 있어 일반적으로 불필요하다. Cleaner는 finalizer보다는 덜 위험하지만, 여전히 예측할 수 없고, 느리고, 일반적으로 불필요하다.
파일 닫기
와 같이 바로 실행되어야 하는 작업은 진행될 수 없다.finalizer와 cleaner를 대신해줄 묘안은 AutoCloseable이다. AutoCloseable을 구현해주고, 클라이언트에서 인스턴스를 다 쓰고 나면 close 메서드를 호출하면 된다.
네이티브 피어는 일반 자바 객체가 아닌 네이티브 메서드를 통해 기능을 위임한 네이티브 객체를 말한다.
cleaner(자바 8까지는 finalizer)는 안전망 역할이나 중요하지 않은 네이티브 자원 회수용으로만 사용하자. 물론 이런 경우라도 불확실성과 성능 저하에 주의하자.