gpt4 book ai didi

java - finalize() 没有被调用

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:55:11 25 4
gpt4 key购买 nike

为什么这里没有调用 finalize()。代码编译并运行成功,但没有任何输出。

package temp;

public class Temp {

int i;

Temp(int j) {
i = j;
}

public void finalize() {
if (i == 10) {
System.out.println("Finalize called.");
}
}

public static void main(String[] args) {
Temp obj = new Temp(10);
System.gc();
}

}

最佳答案

您对 System.gc(); 的调用没有任何区别,因为您的 Temp 实例有一个引用 (obj),所以它不是有资格进行垃圾收集。

即使它符合垃圾收集条件,调用 System.gc(); 也不一定会立即收集所有没有引用它们的对象。

关于java - finalize() 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27499077/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com