java的 finalize() 方法
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() 方法相关推荐
- Java 中finalize()方法起什么作用呢?
转自: Java 中finalize()方法起什么作用呢? Java之finalize()方法功能说明 当我们在一个类中定义了finalize()方法时, 如果一个对象被垃圾收集器析构(回收)之前,则 ...
- Java中finalize方法用途何在?
1 package thinking.in.java.demo; 2 3 /* 4 * finalize的用途何在? 5 * 6 *本例的终止条件是L所有的Book对象在被当做垃圾回收前都应该被签入. ...
- Java 总结finalize()方法
finalize()方法 1. 在Object类的源代码 protected void finalize() throws Throwable{ } 2. finalize()方法只有一个方法体,里面 ...
- java的finalize方法
我们通常用构造器来创建对象,而Finalize正好相反,构造方法执行对象的初始化操作,finalize方法执行对象的销毁操作. 那我们什么时候需要使用finalize方法呢,我们都知道Java里垃圾回 ...
- Java中finalize()方法的使用
1.finalize()方法是什么? finalize()方法是Object类提供的方法,在GC(垃圾回收器)准备释放对象所占用的内存空间之前,它将首先调用finalize()方法.其在Object ...
- java中finalize()方法
finalize 垃圾回收机器(Garbage Collection),也叫GC,垃圾回收器主要有一下特点: 当对象不再被程序所使用的时候,垃圾回收器将会将其回收 垃圾回收是在后台运行的,我们无法命令 ...
- Java中finalize方法的使用(经典白学,新idk已经弃用)
在jdk文档中,其解释为当垃圾回收器确定不存在对该对象的更多的引用时,由对象的垃圾回收器调用此方法. 什么情况下会被回收:某个对象没有任何引用时,则jvm就认为这个对象是一个垃圾对象,用垃圾回收机制调 ...
- Java中finalize方法
前沿:在面试过程中我们可能会被问到final.finally.finalize的区别?本篇文章将介绍finalize的简单用法. Finalize()是Object类的方法. 在GC准备释放对象所占用 ...
- Java之finalize方法
finalize是回收空间的方法 当你的对象没有引用的时候 系统是自动调用finalize方法销毁对在堆中的空间 String a=new String(); a=null;//此时在堆中new的St ...
最新文章
- 公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档
- js的BOM对象完全解析
- VTK:图表之ConnectedComponents
- Python编程之数据结构与算法练习_004
- Spark的枚举类型实例!scala的枚举。
- redis stream java消息队列_Redis 异步消息队列与延时队列
- 【leetcode dp】629. K Inverse Pairs Array
- LightOJ 1353 - Paths in a Tree DFS
- Java反序列s ysoserial Spring
- cnblogs 博客园模板技巧
- fpga烧写bin文件_FPGA烧写的方式和具体过程分析
- onvif 模拟摄像头_ONVIF协议测试工具(ONVIF Device Test Tool)
- PostgreSQL 数据库导入导出
- python docx创建表格
- 2007年计算机工程师,全国计算机等级考试四级数据库工程师考试大纲(2007年版)...
- 「现场参会攻略」| 2018AI in China之智能制造数据驱动产业变革高峰论坛
- 论文专利博客写作总结
- (二)muse-ui 风格工具
- C#编程-39:字符和字符串笔记
- python爬虫利用线程池下载视频