Java では、Connection、FileInputStream、FileOutputStream などのリソースを閉じる場合、これらのオブジェクト インスタンスを null に設定する場合とどう違うのでしょうか? つまり、どちらのシナリオでも、これらのオブジェクトはガベージ コレクションの対象となります。close
では、メソッドにこれらのクラスを提供する目的は何でしょうか?
1 に答える
0
通常、IO クラスのclose
メソッドは、ファイル ハンドラのクローズ、ソケットのフラッシュとクローズなどのクリーンアップ タスクを実行するために存在します。これらのクリーンアップ タスクは、純粋に割り当てに関連するものではなく、GC 自体では処理できません。
さらに、参照を設定null
して、オブジェクトが使用されなくなることを明示的に宣言することは、推奨されるコーディング方法ではありません。オブジェクトにアクセスできなくなった場合、GC は自動的にケースを処理します。明示的なnull
設定は、ソース コードを混乱させるだけです。
于 2013-04-01T22:14:44.943 に答える