デストラクタ
したがって、「ファイナライザによるRAII」は誤りである。ファイナライザで行えることは極めて限定されており、「リソースを解放し忘れていないか確認し、解放し忘れていれば解放する」のようなフェイルセーフ的な利用法がせいぜいである。リソースは不要になった時点で適切に解放されているべきであり、ファイナライザのチェックは保険に過ぎない。解放し忘れは本来はバグで、ファイナライザに頼る設計をしてはいけない。ファイナライザを誤って実装すると、脆弱性が生じることもある。
以上のような不確実性に加え、ファイナライザの利用はガベージコレクタの性能を低下させることもあり、積極的に利用されるものではない。業務サーバーのような、少々のバグがあっても動き続けていなければ困るようなアプリケーションでは用いられることもある。
Java 9ではファイナライザが非推奨となった。