由于为特定类创建了很多对象,其中一些可以被引用,一些可以匿名放在堆中,因此可以进行垃圾收集。因此,堆中甚至一个非引用对象的存在足以使垃圾收集器运行,或者是否有任何其他条件来确保垃圾收集器被执行。
谢谢
Jayendra
答案 0 :(得分:2)
我们不知道GC何时执行,它取决于很多事情,例如GC的类型。您也可以通过执行System.gc()
向VM推荐启动GC。但这又是一个推荐
答案 1 :(得分:1)
正如评论中所指出的,System.gc()仅仅是一个提示或请求。在很多情况下,它将导致完整的GC。但是考虑收集堆转储通常会导致在生成转储之前对System.gc()进行2-3次调用,这主要是为了提高实际发生的几率。
有一些实验性虚拟机提供各种实时保证实现,其中一些不是这样。