首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何一次性释放/GC HashMap<String、XYZ> (不迭代)?

如何一次性释放/GC HashMap<String、XYZ> (不迭代)?
EN

Stack Overflow用户
提问于 2013-08-17 23:28:43
回答 1查看 503关注 0票数 0

我有一些HashMap < String,XYZ >创建的键类型为String,值类型为某些XYZ Class.Now的一些条件检查,我想释放/垃圾收集整个HashMap以及它所持有的XYZ类型的各个对象。如果不迭代哈希映射并将每个对象设置为null,就可以这样做吗?我认为只将HashMap设置为null将不起作用。以后如何确保对象的收集是垃圾收集?

如果我做这样的事:

代码语言:javascript
运行
复制
XYZ obj = new XYZ();
hm.put("<unique-id>",obj);

XYZ obj2 = new XYZ();
hm.put("<unique-id>",obj2);

.
.
.<more operations>
.
.
hm = null;

我的代码不再引用obj或obj2后的hm=null语句。

所以,我能确定jvm不久也会垃圾收集、obj和obj2吗?

此外,在hashmap是一个巨大集合的情况下,我不想使用HashMap之上的Iterator来获取和迭代每个对象,并将其设置为null。

仅仅是hm=null为我完成了GCing的所有对象+映射的集合吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-17 23:39:15

如果不再引用对象,则可以确保正确地收集了该对象。这意味着,如果您将散列映射设置为null,并且您知道映射arn中的所有项都没有被其他对象引用,那么它们将被垃圾收集。如果您想要手动调用gcc,请记住,gcc进程是否执行的决定最终是由JVM决定的!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18294271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档