博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JAVA中的finalize()方法
阅读量:6457 次
发布时间:2019-06-23

本文共 750 字,大约阅读时间需要 2 分钟。

今天早上看Thinking in java的【第四章 初始化和清除】.【  清除:终结和垃圾回收】的时候, 看到了这个东西。

用于清理滴。。。

当然,这个方法来自java.lang.Object

finalize()方法的重写

权限(Access)需要是protected或者是public ,不能是private

finalize()方法不需要显示地调用, 在垃圾回收(GC)时会被自动先行调用的。

据我测试,需要显示地调用垃圾回收方法(System.gc()),并且需要有new出来的尚未被销毁匿名对象的存在(调用其它语言暂不作考虑),finalizze()方法才会被调用

Eg:

public class F {   public static void main(String args[]) {      new F();         //int a[] = new int[3];         //F f= new F();         System.gc();     }     public void finalize() throws Throwable{                    //super.finalize();           System.out.println("finalize method was called!");     }}

  

上面的代码中,分别new出了一个匿名对象, 一个整型数组和一个实例对象f,从测试结果看来,只有在创建匿名对象并且显示地调用了  System.gc()方法的时候,finalize方法才被调用了。

转载于:https://www.cnblogs.com/zzzzw/p/4878794.html

你可能感兴趣的文章
15 个 Android 通用流行框架大全
查看>>
IE8兼容@media和mp4视频的解决方案
查看>>
第二周总结
查看>>
概率图模型建模、学习、推理资料总结
查看>>
【转】知道这20个正则表达式,能让你少写1,000行代码
查看>>
自定义 启动和关闭 oracle 的命令
查看>>
Quartz
查看>>
正则表达式介绍
查看>>
初识Scala反射
查看>>
第三十九天
查看>>
Redis详解
查看>>
论程序员加班的害处
查看>>
codeblocks快捷键
查看>>
基于HTML5的WebGL设计汉诺塔3D游戏
查看>>
WPF资料链接
查看>>
过滤DataTable表中的重复数据
查看>>
再次更新
查看>>
mysql的数据类型int、bigint、smallint 和 tinyint取值范围
查看>>
利用网易获取所有股票数据
查看>>
移动铁通宽带上网设置教程
查看>>