java - 在完成期间引用对象

标签 java garbage-collection finalizer

如果在 finalize 调用期间保存对当前对象的引用,会发生什么情况?例如:

class foo {
    ...
    public void finalize() {
        bar.REFERENCE = this;
    }
}

对象是否被垃圾回收?当您稍后尝试访问 bar.REFERENCE 时会发生什么?

最佳答案

该对象未被垃圾回收。这被称为“对象复活”。

你必须小心,一旦终结器被调用,gc 将不会再次调用它,在某些环境中,如 .NET,你可以重新注册终结器,但我不确定 java

关于java - 在完成期间引用对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1002567/

相关文章:

c# - 使用解构函数是错误的吗?

c# - 为什么java和c#有终结器?

java - 通过比较两个查询参数来匹配wiremock请求

java - 使用 Spring Boot 进行客户端证书身份验证

java - 响应Intent。ACTION_BATTERY_CHANGED

Java Heap - 更改核心数后更改了 Young Space

.net - 从命令行运行垃圾收集器?

.net - .net终结器是否始终执行?

java - Spring @Scheduled 任务运行两次

mono - MonoTouch 和 MonoDroid 是否为两个平台生成相同的 ARM6/7 代码?