[Effective Java] finalizer와 cleaner 사용을 피하라.


[Effective Java] finalizer와 cleaner 사용을 피하라.

finalizer와 cleaner 사용을 피하라. finalizer - 객체 소멸자이다. - 예측할 수 없고, 상황에 따라 위험할 수 있기에 일반적으로 불필요하다. - 자바 9부터는 deprecated 되어있다. cleaner - 객체 소멸자이다. - finalizer보단 덜 위험하지만, 여전히 예측할 수 없고, 느리고, 일반적으로 불필요하다. - finalizer와 cleaner는 c++의 파괴자와는 다른 개념 - 자바에서는 비메모리 자원 회수를 try-with-resources와 try-finally를 사용해서 해결한다. - finalizer와 cleaner로는 제 때 실행되어야 하는 작업은 절대 할 수 없다. - 예를 들어 시스템이 동시에 열수 있는 파일 개수에 한계가 있기에 파일 닫기를 finalizer와 cleaner에 맡기면 중대한 오류를 일으킨다. - 상태를 영구적으로 수정하는 작업에서는 절대 finalizer와 cleaner에 의존해서는 안된다. - finalizer와...


#이펙티브자바

원문링크 : [Effective Java] finalizer와 cleaner 사용을 피하라.