转自:

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 释放

Java 中finalize()方法起什么作用呢?相关推荐

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

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

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

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

  3. java中finalize()方法

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

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

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

  5. Java中finalize方法

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

  6. java中main方法前的public static void及其后面的(String[] args)【笔记自用】

    为什么Java的main方法必须是public static void? 一. void 如下,像C, C++一样,将返回值类型改为int,再返回一个0,虽然编译通过,但是运行时会报错. 找到一种可理 ...

  7. Java中finalize()用法

    Java中finalize() 垃圾回收器要回收对象的时候,首先要调用这个类的finalize方法(你可以 写程序验证这个结论),一般的纯Java编写的Class不需要重新覆盖这个方法,因为Objec ...

  8. java中的方法求和_在Java中模拟求和类型的巧妙解决方法

    java中的方法求和 在继续阅读实际文章之前,我想感谢令人敬畏的Javaslang库的作者Daniel Dietrich ,他在我面前有了这个主意: @lukaseder尝试使用静态方法<T,T ...

  9. eclipse折叠if语句块_「03」java中的方法以及控制语句

    语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句.块确定了局部变量的作用域.块中的程序代码,作为一个整体,是要被一起执行的.块可以被嵌套在另一个块中,但是不能在两个嵌套的块内声明 ...

最新文章

  1. golang 的AES加解密 (CBC/ECB/CFB 模式)
  2. 2005年的最后一天
  3. ashx和asmx的HttpContext
  4. Oracle 大规模 delete,update 操作 注意事项
  5. 遍历数据元素作为参数发送ajax jsonp请求
  6. django模板层 (标签,过滤器,自定义inclusion_tag,模板的继承与导入)
  7. 最小二乘法和极大似然估计
  8. Android-Universal-Image-Loader学习笔记(一)
  9. ramoops具体失败原因来解释驱动寄存器
  10. 个人计算机虚拟化,CPU虚拟化是什么?家用电脑需要开启虚拟化吗?
  11. CNTV获首张互联网电视牌照
  12. 电影《寒战2》中的管理知识
  13. 基于贪心选择及斜率探测扩充的轨面提取方法
  14. 利用redis生成订单号
  15. 编译原理个人作业--第五章——基于 编译原理 国防工业出版社 第三版
  16. 干货|JustAuth三方账号授权登录免费搭建全流程
  17. 用降群的方法来解算还原魔方的步骤C++
  18. 分享一个无需账号完全免费的 ChatGPT-4 的方法
  19. 英国政府资助!Wave Photonics领导光量子集成电路封装项目
  20. 为什么安装了python桌面没有图标怎嘛办_python在程序中没有找到图标

热门文章

  1. 软件设计模式-观察者模式
  2. Vue项目中常见问题(55)提交订单、获取订单号、展示支付信息
  3. 信噪比(SNR)计算公式的推导
  4. 简单谈C++为什么是面向对象的程序设计
  5. C语言中free函数如何确定释放的空间大小
  6. 史上最全Nginx配置优化
  7. Python递归函数返回阶乘
  8. PHP处理iso8583报文
  9. 现在的千兆光猫都自带路由功能,是否就不需要路由器了?
  10. UCOS-Ⅲ:软件定时器