首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中垃圾回收对象的方法

在Java中垃圾回收对象的方法
EN

Stack Overflow用户
提问于 2011-12-13 21:30:12
回答 5查看 1.4K关注 0票数 0

有什么方法可以对对象进行垃圾回收吗?据我所知,如果要对任何对象进行垃圾回收,就会在调用finalize()之前调用它。

EN

回答 5

Stack Overflow用户

发布于 2011-12-13 21:34:09

礼貌地作为垃圾收集器删除对象的唯一真正方法是删除所有可用于访问该对象的引用。

代码语言:javascript
复制
Object o = new Object();
o = null; // at this point GC may remove the object.

要强制执行该过程,可以尝试调用System.gc()。但请记住,这并不能保证您的对象会在这次GC迭代中被真正删除。

票数 6
EN

Stack Overflow用户

发布于 2011-12-13 21:51:13

有什么方法可以对对象进行垃圾回收吗?

不没有。

一个对象在变得“不可达”后将(可能)被垃圾回收。通过调用System.gc(),可以使垃圾收集器在特定时间运行。然而。允许JVM忽略您的System.gc()调用,在错误的时间运行GC是对资源的浪费。

实际上,调用System.gc()来回收单个对象的效率非常低,而且无论如何也不一定会回收它……即使在这一点上它是垃圾。

Java应用程序依赖于在特定时间被垃圾回收的对象,或者依赖于在特定时间运行的终结器,这是错误的。如果您的应用程序设计为以这种方式工作,那么您应该重新设计它。

票数 4
EN

Stack Overflow用户

发布于 2011-12-13 21:32:17

有一个System.gc();方法,它只是给垃圾收集器一个提示给垃圾对象。但是,没有任何方法可以调用,并且立即对对象进行垃圾回收。

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

https://stackoverflow.com/questions/8490067

复制
相关文章

相似问题

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