有什么方法可以对对象进行垃圾回收吗?据我所知,如果要对任何对象进行垃圾回收,就会在调用finalize()之前调用它。
发布于 2011-12-13 21:34:09
礼貌地作为垃圾收集器删除对象的唯一真正方法是删除所有可用于访问该对象的引用。
Object o = new Object();
o = null; // at this point GC may remove the object.要强制执行该过程,可以尝试调用System.gc()。但请记住,这并不能保证您的对象会在这次GC迭代中被真正删除。
发布于 2011-12-13 21:51:13
有什么方法可以对对象进行垃圾回收吗?
不没有。
一个对象在变得“不可达”后将(可能)被垃圾回收。通过调用System.gc(),可以使垃圾收集器在特定时间运行。然而。允许JVM忽略您的System.gc()调用,在错误的时间运行GC是对资源的浪费。
实际上,调用System.gc()来回收单个对象的效率非常低,而且无论如何也不一定会回收它……即使在这一点上它是垃圾。
Java应用程序依赖于在特定时间被垃圾回收的对象,或者依赖于在特定时间运行的终结器,这是错误的。如果您的应用程序设计为以这种方式工作,那么您应该重新设计它。
发布于 2011-12-13 21:32:17
有一个System.gc();方法,它只是给垃圾收集器一个提示给垃圾对象。但是,没有任何方法可以调用,并且立即对对象进行垃圾回收。
https://stackoverflow.com/questions/8490067
复制相似问题