Java 中finalize()方法起什么作用呢?
Java之finalize()方法功能说明
当我们在一个类中定义了finalize()方法时, 如果一个对象被垃圾收集器析构(回收)之前,则finalize()方法会被调用运行finalize()方法的功能:用于清除回收对象 当然如果我们不采用finalize()方法回收一些对象的话,JVM也会在一段时间后回收相应的对象
Java之finalize()方法常见的应用场景
如:
在finalize()方法中定义一个事件,
用于确保对象释放时,
该关闭的对象是否关闭(如:数据库连接,文件句柄)
Java之finalize()方法代码样式
protected void finalize()
{
//代码块 如:释放****
}
protected:用于确保finalize()方法不会类以外的代码调用运行
Java之finalize()方法 示例分享
testMain.java 文件代码:
public class testMain{
public static void main(String[] args) {
InfoTest c1 = new InfoTest(1);
InfoTest c2 = new InfoTest(2);
InfoTest c3 = new InfoTest(3);
c2 = c3 = null;
System.gc(); //调用Java垃圾收集器,会自动运行finalize方法
}
}
class InfoTest extends Object {
private int id;
public InfoTest(int id) {
this.id = id;
System.out.println("InfoTest Object " + id + "创建");
}
protected void finalize() throws java.lang.Throwable {
super.finalize();
System.out.println("InfoTest Object " + id + " 释放");
}
}
---运行以上代码,将输出以下信息----
$ javac testMain.java
$ java testMain
InfoTest Object 1 创建
InfoTest Object 2 创建
InfoTest Object 3 创建
InfoTest Object 3 释放
InfoTest Object 2 释放
t
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。


