我创建了一些 HashMap < String, XYZ >,其键类型为字符串,值类型为某个 XYZ 类。现在,对于某些条件检查,我想释放/垃圾收集整个 HashMap 以及它持有的 XYZ 类型的各个对象. 是否可以在不迭代哈希映射并将每个对象设置为 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 over HashMap 来获取和迭代每个对象并将其设置为 null。
只是 hm=null 是否为我执行了 GCing 整个对象集合 + 映射的上述内容?