首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >什么时候会对对象引用进行垃圾回收?

什么时候会对对象引用进行垃圾回收?
EN

Stack Overflow用户
提问于 2012-01-09 23:06:54
回答 3查看 1.3K关注 0票数 3

有人告诉我,只有当引用被设置为空时,垃圾回收器才会收集它。然而,我认为垃圾回收器将收集所有范围外的引用,这些引用从未被设置为空。

谁能告诉我垃圾收集器什么时候会声明引用?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-09 23:07:37

GC收集对象,而不是引用。

GC将在对象不再有活动引用后一段时间收集该对象。( GC是不确定的)

票数 9
EN

Stack Overflow用户

发布于 2012-01-09 23:09:51

有人可能的意思是,通过将保存对对象的引用的变量设置为null,可以让GC在对象超出范围之前收集该对象。在过去,这种技术在一些非常罕见的情况下很有价值(例如,在没有引用对象的长时间运行的循环之前)。如今的编译器技术使得这个想法几乎毫无用处,因为编译器足够聪明,可以检测到这些条件,并采取相应的行动。

票数 2
EN

Stack Overflow用户

发布于 2012-01-09 23:16:54

GC会“在需要的时候”从内存中删除对象。您可以尝试运行System.gc(),但它只是对GC的一个提示,它应该运行。当GC运行时,它会找到未引用的对象(或仅具有弱引用的对象等)。GC的运行频率取决于内存空间。它最常在伊甸园运行。默认情况下,GC在eden空间中满时运行,但您可以调优JVM。

为什么你一开始还要纠结于GC呢?你有什么问题?

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

https://stackoverflow.com/questions/8790478

复制
相关文章

相似问题

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