私はいくつかの HashMap < String, XYZ > を作成しました。キーの型は String で、値の型は XYZ Class です。いくつかの条件チェックのために、保持している XYZ 型の個々のオブジェクトとともに HashMap 全体を解放/ガベージ コレクションしたいと考えています。 . ハッシュマップを反復して各オブジェクトを null に設定せずにそれを行うことは可能ですか? HashMap のみを null に設定しても機能しないと思います。オブジェクトのコレクションがガベージ コレクションされていることを後で確認するにはどうすればよいですか?
私が次のようなことをした場合:
XYZ obj = new XYZ();
hm.put("<unique-id>",obj);
XYZ obj2 = new XYZ();
hm.put("<unique-id>",obj2);
.
.
.<more operations>
.
.
hm = null;
私のコードは、 hm=null ステートメントの後に obj または obj2 を参照しなくなりました。
それで、jvmがobjとobj2もすぐにガベージコレクションすることを十分に確信できますか?
さらに、ハッシュマップが巨大なコレクションである場合、HashMap に対して Iterator を使用して、すべてのオブジェクトを取得および反復処理し、それを null に設定したくありません。
hm=null だけで、上記の GCing オブジェクトのコレクション全体 + マップを実行できますか?