首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将Java对象设置为null还能做什么吗?

将Java对象设置为null还能做什么吗?
EN

Stack Overflow用户
提问于 2009-05-12 02:20:49
回答 3查看 62.6K关注 0票数 116

我浏览了一些旧书,发现了一本Peter Hagger的“实用Java”。在performance部分,建议在不再需要时将对象引用设置为null

在Java语言中,将对象引用设置为null是否会提高性能或垃圾收集效率?如果是这样,在什么情况下这是一个问题?容器类?对象组合?匿名内部类?

我经常在代码中看到这一点。这是过时的编程建议,还是仍然有用?

EN

回答 3

Stack Overflow用户

发布于 2009-05-12 02:26:19

不,这不是过时的建议。悬空引用仍然是一个问题,特别是如果您正在使用预分配的数组实现可扩展数组容器(ArrayList或类似的)。超出列表“逻辑”大小的元素应该清空,否则它们将不会被释放。

参见Effective Java第二版,第6项:消除过时的对象引用。

票数 26
EN

Stack Overflow用户

发布于 2009-05-12 02:31:36

在内存受限的环境中(例如手机),这可能会很有用。通过设置null,objetc无需等待变量超出作用域即可进行gc。

然而,对于日常编程来说,这不应该是规则,除非在像Chris Jester-Young引用的特殊情况下。

票数 5
EN

Stack Overflow用户

发布于 2018-01-11 17:01:03

这样做的原因之一是消除过时的对象引用。您可以阅读文本here.

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

https://stackoverflow.com/questions/850878

复制
相关文章

相似问题

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