파이널라이저는 예측 불가에다가 위험하기도 하며 일반적으로는 불필요하다.
파이널라이저의 경우 신속하게 실행된다는 보장이 없다. 즉 객체가 사용할 수 없게 되는 시점부터 파이널라이저가 실행되는 시점까지 긴 시간이 소요될 수 있다.
 즉 파이널라이저 내부에서 실행 시간이 매우 중요한 작업을 절대 하면 안된다. 예를 들어 파일을 닫는 경우이다.
이 경우 파일이 언제 닫힐 지 몰라 어플리케이션에 문제가 생길 수 도 있다.

파이널라이저의 실행 시점이 늦는 것은 이론 상의 문제만은 아니다. 클래스에 파이널라이저를 사용하면 간혹 인스턴스들의 매모리 회수와 재활용이 지연될 수 있다. 즉 사용을 하지 말자 되도록이면 try catch fanally 로 구문으로 확실하게 실행시키도록 하자.

Posted by 서오석
,