1、finalize() 方法是什么?

Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象

例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。

在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。

finalize() 一般格式是:

protected void finalize()
{// 在这里终结代码
}

关键字 protected 是一个限定符,它确保 finalize() 方法不会被该类以外的代码调用。

当然,Java 的内存回收可以由 JVM 来自动完成。如果你手动使用,则可以使用上面的方法。

实例
FinalizationDemo.java 文件代码:

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 对象 " + id + "被创建!");  }  protected void finalize() throws java.lang.Throwable {  super.finalize();  System.out.println("Cake 对象 " + id + "被创建");  }
}

运行以上代码,输出结果如下:

Cake 对象 1被创建!
Cake 对象 2被创建!
Cake 对象 3被创建!
Cake 对象 3被创建
Cake 对象 2被创建

java的 finalize() 方法相关推荐

  1. Java 中finalize()方法起什么作用呢?

    转自: Java 中finalize()方法起什么作用呢? Java之finalize()方法功能说明 当我们在一个类中定义了finalize()方法时, 如果一个对象被垃圾收集器析构(回收)之前,则 ...

  2. Java中finalize方法用途何在?

    1 package thinking.in.java.demo; 2 3 /* 4 * finalize的用途何在? 5 * 6 *本例的终止条件是L所有的Book对象在被当做垃圾回收前都应该被签入. ...

  3. Java 总结finalize()方法

    finalize()方法 1. 在Object类的源代码 protected void finalize() throws Throwable{ } 2. finalize()方法只有一个方法体,里面 ...

  4. java的finalize方法

    我们通常用构造器来创建对象,而Finalize正好相反,构造方法执行对象的初始化操作,finalize方法执行对象的销毁操作. 那我们什么时候需要使用finalize方法呢,我们都知道Java里垃圾回 ...

  5. Java中finalize()方法的使用

     1.finalize()方法是什么? finalize()方法是Object类提供的方法,在GC(垃圾回收器)准备释放对象所占用的内存空间之前,它将首先调用finalize()方法.其在Object ...

  6. java中finalize()方法

    finalize 垃圾回收机器(Garbage Collection),也叫GC,垃圾回收器主要有一下特点: 当对象不再被程序所使用的时候,垃圾回收器将会将其回收 垃圾回收是在后台运行的,我们无法命令 ...

  7. Java中finalize方法的使用(经典白学,新idk已经弃用)

    在jdk文档中,其解释为当垃圾回收器确定不存在对该对象的更多的引用时,由对象的垃圾回收器调用此方法. 什么情况下会被回收:某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,用垃圾回收机制调 ...

  8. Java中finalize方法

    前沿:在面试过程中我们可能会被问到final.finally.finalize的区别?本篇文章将介绍finalize的简单用法. Finalize()是Object类的方法. 在GC准备释放对象所占用 ...

  9. Java之finalize方法

    finalize是回收空间的方法 当你的对象没有引用的时候 系统是自动调用finalize方法销毁对在堆中的空间 String a=new String(); a=null;//此时在堆中new的St ...

最新文章

  1. 公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档
  2. js的BOM对象完全解析
  3. VTK:图表之ConnectedComponents
  4. Python编程之数据结构与算法练习_004
  5. Spark的枚举类型实例!scala的枚举。
  6. redis stream java消息队列_Redis 异步消息队列与延时队列
  7. 【leetcode dp】629. K Inverse Pairs Array
  8. LightOJ 1353 - Paths in a Tree DFS
  9. Java反序列s ysoserial Spring
  10. cnblogs 博客园模板技巧
  11. fpga烧写bin文件_FPGA烧写的方式和具体过程分析
  12. onvif 模拟摄像头_ONVIF协议测试工具(ONVIF Device Test Tool)
  13. PostgreSQL 数据库导入导出
  14. python docx创建表格
  15. 2007年计算机工程师,全国计算机等级考试四级数据库工程师考试大纲(2007年版)...
  16. 「现场参会攻略」| 2018AI in China之智能制造数据驱动产业变革高峰论坛
  17. 论文专利博客写作总结
  18. (二)muse-ui 风格工具
  19. C#编程-39:字符和字符串笔记
  20. python爬虫利用线程池下载视频

热门文章

  1. 解析新浪微博JSON
  2. 软考知识点梳理--项目评估
  3. shell 递归函数
  4. Java 的上溯造型和下溯造型以及举例,以及判断参数等指向的类
  5. [转]阿里云 内置算法和模板说明
  6. 基于yolov8的检测分割跟踪软件系统(含Pyqt界面,附下载链接和演示视频,集成四种多目标跟踪算法,模型已训好)
  7. icon和文本垂直居中对齐
  8. 如何学习自动化测试?一文4从个方面带你入门自动化测试【建议收藏】
  9. PTA甲级 1043 Is It a Binary Search Tree (25分) 树的遍历
  10. 貓空纜車 現代與自然的旅遊結合