자바가 제공하는 객체 소멸자

1. finalizer

2. cleaner

⇒ 상태를 영구적으로 수정하는 작업에서는 절대 finalizer나 cleaner에 의존해서는 안된다!!!

ex) 데이터베이스 같은 공유 자원의 영구 락 해제

⇒ 그 대신 AutoCloseable을 구현해주고, 클라이언트에서 인스턴스를 다 쓴 후 close 메서드를 호출하자.

cleaner과 finalizer의 쓰임

1. 자원의 소유자가 close 메서드를 호출하지 않는 것에 대비한 안전망 역할

2. 네이티브 피어와 연결된 객체