<分区>
我对 Java 的垃圾收集器的了解是它可以处理所需的一切,但我关心的是效率。
据我所知,其他一些语言,例如 Python,可以通过实际执行以下操作来帮助垃圾收集器:
objectReference = none
这在 Java 中是否可行,程序员几乎可以通过将变量分配给 null 来有效地释放堆内存?如果是,与 C 使用 free() 函数手动释放内存相比,这有多有效?
<分区>
我对 Java 的垃圾收集器的了解是它可以处理所需的一切,但我关心的是效率。
据我所知,其他一些语言,例如 Python,可以通过实际执行以下操作来帮助垃圾收集器:
objectReference = none
这在 Java 中是否可行,程序员几乎可以通过将变量分配给 null 来有效地释放堆内存?如果是,与 C 使用 free() 函数手动释放内存相比,这有多有效?
最佳答案
变量在超出范围后不再存在,例如当方法返回时,因此尽早 null
变量几乎没有任何好处。
字段的生命周期等于拥有对象,所以如果一个对象将继续存在一段时间,但您知道不再需要该字段引用,则null
该字段可能允许引用对象的早期 GC。
是否需要这样做取决于拥有对象将保留多长时间,以及引用对象有多大。这很少是值得的。
关于java - 在 Java 中释放对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355099/