1

Java では、Connection、FileInputStream、FileOutputStream などのリソースを閉じる場合、これらのオブジェクト インスタンスを null に設定する場合とどう違うのでしょうか? つまり、どちらのシナリオでも、これらのオブジェクトはガベージ コレクションの対象となります。closeでは、メソッドにこれらのクラスを提供する目的は何でしょうか?

4

1 に答える 1

0

通常、IO クラスのcloseメソッドは、ファイル ハンドラのクローズ、ソケットのフラッシュとクローズなどのクリーンアップ タスクを実行するために存在します。これらのクリーンアップ タスクは、純粋に割り当てに関連するものではなく、GC 自体では処理できません。

さらに、参照を設定nullして、オブジェクトが使用されなくなることを明示的に宣言することは、推奨されるコーディング方法ではありません。オブジェクトにアクセスできなくなった場合、GC は自動的にケースを処理します。明示的なnull設定は、ソース コードを混乱させるだけです。

于 2013-04-01T22:14:44.943 に答える