相关疑难解决方法(0)

什么时候在Java中调用finalize()方法?

我需要知道何时finalize()调用该方法JVM.我创建了一个测试类,当finalize()通过覆盖它来调用方法时,该测试类会写入文件.它没有被执行.谁能告诉我它没有执行的原因?

java methods garbage-collection finalize call

320
推荐指数
8
解决办法
47万
查看次数

Java并手动执行finalize

如果我finalize()从程序代码中调用一个对象,当垃圾回收器处理这个对象时,JVM是否仍会再次运行该方法?

这将是一个近似的例子:

MyObject m = new MyObject();

m.finalize();

m = null;

System.gc()
Run Code Online (Sandbox Code Playgroud)

显式调用是否finalize()会使JVM的垃圾收集器不在finalize()对象上运行该方法m

java garbage-collection finalize

16
推荐指数
2
解决办法
2万
查看次数

将对象引用设置为null或调用finalize()方法?

作为一个java初学者,我想询问是否应该将对象引用设置为null,或者在大型项目中调用finalize方法?

例如,

while( obj... some code here){
 //code stuff
}
obj = null; // or obj.finalize();
Run Code Online (Sandbox Code Playgroud)

由于我完成了,obj 并没有更多的参考,它应该怎么办呢?将其设置为null或调用finalize();?

我读了java文档,但这段话The finalize method is never invoked more than once by a Java virtual machine for any given object.让我很困惑.这是否意味着即使我使用它,它也不会做任何事情,除非GC决定这样做?然后,我决定obj将null 设置为null吗?

这一切都假设它是一个大型项目,并且范围尚未结束,以便GC自行解除分配.谢谢.

java garbage-collection jvm

5
推荐指数
2
解决办法
921
查看次数

标签 统计

garbage-collection ×3

java ×3

finalize ×2

call ×1

jvm ×1

methods ×1