此方法不理解

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

最新文章

  1. 解析 XML
  2. Linux文件及目录权限解析
  3. ubuntu不能访问windows中的文件
  4. 安装MVC3后没有dbcontext生成器的解决方案
  5. javaSE第十二天
  6. 关于JFace带复选框的树
  7. (转)ecshop产品详情页显示不清晰
  8. jchat:linux聊天程序1:简介
  9. bootstrap table 和 x-editable 使用方法
  10. 在自己笔记本电脑上如何访问虚拟机的内容、包括可以使用ssh、访问tomcat、访问nginx
  11. kafka环境搭建
  12. 源码解析之ConcurrentHashmap
  13. display: table-cell的实用应用
  14. CSS_高级选择符
  15. windows安装mysql8
  16. JavaScript---设计模式总结
  17. 使用es6的蹦床函数解决递归造成的堆栈溢出
  18. java编程排序之自定义类型的集合,按业务需求排序
  19. java的按值传递与按引用传递
  20. 第二百五十三节,Bootstrap项目实战-资讯

热门文章

  1. 解决Net内存泄露原因
  2. 查找对应jar的maven包
  3. 模糊聚类算法(FCM)
  4. 【经典】Noip贪心
  5. 向HDFS中追加内容
  6. AUL恢复truncate删除的表
  7. TOP K问题的若干实现
  8. hive字段原理--有删除一列想到的
  9. Python学习笔记之os模块
  10. JMS可靠性机制