class Example {
@Override
protected void finalize() throws Throwable {
try {
// 在这里执行对象清理的代码
System.out.println("finalize method is called");
} finally {
// 确保即使发生异常,父类的finalize方法也会被调用
super.finalize();
}
}
public static void main(String[] args) {
Example example = new Example();
example = null;
// 提示垃圾回收器运行,但不保证立即执行
System.gc();
// 为了确保程序在finalize方法有机会被调用后退出
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
finalize()
方法是在对象即将被垃圾回收器回收时调用的。它允许对象在被回收之前执行一些清理工作,例如释放资源。finalize()
方法被重写,当对象被垃圾回收时会打印一条消息。System.gc()
提示 JVM 运行垃圾回收器,但并不保证立即执行。finalize()
方法已被标记为过时(deprecated),因为它存在很多问题,例如不确定的调用时间和性能开销。建议使用其他方式来管理资源,如 try-with-resources
或显式关闭资源。下一篇:java延迟队列
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站