【发布时间】:2018-12-03 07:14:53
【问题描述】:
这是一段代码。 finalize() 方法应该在 System.gc() 命令之后调用,但不是。 有什么建议吗?
class test123{
test123(){
System.out.println("Inside the constructor");
}
}
public class finalizemerthd {
public static void main(String args[]) {
test123 obj1 = new test123();
obj1 = null;
System.gc();
}
protected void finalize() throws Throwable
{
System.out.println("Garbage collector called");
System.out.println("Object garbage collected : " + this);
}
}
【问题讨论】:
-
您在
finalizemerthd类中声明了finalize方法。但是您没有要清理的该类的实例。您应该将其添加到您的test123类中。阅读方法的文档,做一些研究。另请注意,System.gc()仅请求 GC 运行。它可能并且将会延迟甚至忽略运行。 -
请注意,自 Java 9 以来,
finalize已弃用(请参阅documentation)。 -
还请下次使用
@Override表示finalize()方法,因为我真的很困惑! -
请遵守命名约定。 PascalCase. 中的类名
标签: java garbage-collection finalize