Java方法学习疑问
2024-08-25 07:58:34
此方法不理解
finalize() 方法
Java允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做finalize( ),它用来清除回收对象。
例如,你可以使用finalize()来确保一个对象打开的文件被关闭了。
在finalize()方法里,你必须指定在对象销毁时候要执行的操作。
finalize()一般格式是:
protected void finalize()
{
// 在这里终结代码
}
关键字protected是一个限定符,它确保finalize() 方法不会被该类以外的代码调用。
当然,Java的内存回收可以由JVM来自动完成。如果你手动使用,则可以使用上面的方法。
实例
public class FinalizationDemo {
public static void main(String[] args) {
Cake c1 = new Cake(1);
Cake c2 = new Cake(2);
Cake c3 = new Cake(3); c2 = c3 = null;
System.gc(); //调用Java垃圾收集器
}
} class Cake extends Object {
private int id;
public Cake(int id) {
this.id = id;
System.out.println("Cake Object " + id + " is created");
} protected void finalize() throws java.lang.Throwable {
super.finalize();
System.out.println("Cake Object " + id + " is disposed");
}
}
运行以上代码,输出结果如下:
Cake Object 1 is created
Cake Object 2 is created
Cake Object 3 is created
Cake Object 3 is disposed
Cake Object 2 is disposed
最新文章
- 解析 XML
- Linux文件及目录权限解析
- ubuntu不能访问windows中的文件
- 安装MVC3后没有dbcontext生成器的解决方案
- javaSE第十二天
- 关于JFace带复选框的树
- (转)ecshop产品详情页显示不清晰
- jchat:linux聊天程序1:简介
- bootstrap table 和 x-editable 使用方法
- 在自己笔记本电脑上如何访问虚拟机的内容、包括可以使用ssh、访问tomcat、访问nginx
- kafka环境搭建
- 源码解析之ConcurrentHashmap
- display: table-cell的实用应用
- CSS_高级选择符
- windows安装mysql8
- JavaScript---设计模式总结
- 使用es6的蹦床函数解决递归造成的堆栈溢出
- java编程排序之自定义类型的集合,按业务需求排序
- java的按值传递与按引用传递
- 第二百五十三节,Bootstrap项目实战-资讯