java - 在 Java 中释放对象

标签 java c garbage-collection free

<分区>

我对 Java 的垃圾收集器的了解是它可以处理所需的一切,但我关心的是效率。

据我所知,其他一些语言,例如 Python,可以通过实际执行以下操作来帮助垃圾收集器:

objectReference = none

这在 Java 中是否可行,程序员几乎可以通过将变量分配给 null 来有效地释放堆内存?如果是,与 C 使用 free() 函数手动释放内存相比,这有多有效?

最佳答案

变量在超出范围后不再存在,例如当方法返回时,因此尽早 null 变量几乎没有任何好处。

字段的生命周期等于拥有对象,所以如果一个对象将继续存在一段时间,但您知道不再需要该字段引用,则null该字段可能允许引用对象的早期 GC。

是否需要这样做取决于拥有对象将保留多长时间,以及引用对象有多大。这很少是值得的。

关于java - 在 Java 中释放对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35355099/

相关文章:

java - 处理维基百科转储文件

java - 使用 Spring Data Redis 连接到多个 Redis 服务器

C - 将 double 输入数组时出现问题

c++ - 如何从十六进制字符串中获取小数

c# - 什么可能导致性能提高? GC 时间、池化

java - JNI、垃圾收集和指针——Java/C++ 谁应该做什么?

java - 如何在 Spring surf java webscript 中将上传的文件上传到本地文件夹?

java - TomEE++ 和 ObjectDB 无法正常工作

c - 交换整数中的交替字节

java - JVM 智能内存池调整大小