Object的finalize()方法的作用是否与C++的析构函数作用相同

public class Finalization {private static Finalization finalization;/**finalize在gc回收中有不确定性,所以不推荐用finalize进行回收*/@Overrideprotected void finalize(){System.out.println("finalized");//System.gc()时,这一步可能没有被执行到就终止了,所以可能为null或对象地址。//可以让线程睡眠执行此步骤finalization=this;}public static void main(String[] args) {Finalization f = new Finalization();System.out.println("first print: "+f);f= null;//调用Finalization的finalize方法System.gc();try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}System.out.println("second print: "+f);System.out.println(finalization);}
}

未加入线程休眠的代码,发现finalization可能输出为null

first print: com.gclhaha.javabasic.jvm.gc.Finalization@1b6d3586
second print: null
finalized
null

加入休眠代码后

first print: com.gclhaha.javabasic.jvm.gc.Finalization@1b6d3586
finalized
second print: null
com.gclhaha.javabasic.jvm.gc.Finalization@1b6d3586

Java中强引用、软引用、弱引用、虚引用有什么用

强引用


软引用

软引用还可以配合引用队列去使用

弱引用

弱引用还可以配合引用队列去使用

虚引用

gc在回收对象时,这个对象具有虚引用,那么在回收前,回将虚引用加入引用队列中,通过判断引用队列中是否加入虚引用来了解被引用的对象是否被gc回收,可以起到哨兵的作用。

软引用和弱引用也可以先像上面这样配合ReferenceQueue使用。

总结

Object的finalize()方法的作用是否与C++的析构函数作用相同相关推荐

  1. finalize java,Java中Object对象finalize方法详细解析

    简书:capo 转载请注明原创出处,谢谢! 前言: 今天我们来看看Object中一个经常被人遗忘的方法,finalize方法.老规矩,我们先看看Javadoc是怎样描述这个方法的 /** * Call ...

  2. Object的finalize方法

    一.一次标记 首先finalize方法是在垃圾回收时,用于确认该对象是否确认被回收的一个标记过程. 确认一个对象真正被回收需要经历两次标记过程: 可达性分析没有引用,这是第一次标记 是否有必要执行fi ...

  3. C#中Finalize方法的问题

    C#中Finalize方法的问题 ninputer在关于"值类型的Finalize不会被调用"中(http://blog.joycode.com/lijianzhong/archi ...

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

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

  5. Java基础Object类的finalize方法

    1.在Object类中的源代码: protected void finalize() throws Throwable { } GC:负责调用finalize()方法. 2.finalize()方法只 ...

  6. Object类九大方法之finalize方法

    Object类九大方法之finalize方法 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法. finalize的作用 ...

  7. java object finalize_Java Object finalize() 方法

    Object finalize() 方法用于实例被垃圾回收器回收的时触发的操作. 当 GC (垃圾回收器) 确定不存在对该对象的有更多引用时,对象的垃圾回收器就会调用这个方法. 语法 protecte ...

  8. finalize方法作用

    垃圾回收机制的一个算法,算法分析理解起来比较抽象,再讲一下新生代和老年代,垃圾回收机制的一个策略,垃圾回收机制是干嘛用的,1. 什么是垃圾回收机制?相当于JVM不定时的去回收不可达的对象,他这个完全是 ...

  9. java finalize 作用_java中的finalize方法有什么作用

    java中的finalize方法是Object类中提供的一个方法,在GC准备释放对象所占用的内存空间之前,它将首先调用finalize()方法. finalize()方法是Object类中提供的一个方 ...

最新文章

  1. python3 tcp 文件传输源码
  2. 【计算机网络】网络安全 : 总结 ( 网络攻击类型 | 网络安全指标 | 数据加密模型 | 对称密钥密码体质 | 公钥密码体质 | 数字签名 | 报文鉴别 | 实体鉴别 | 各层安全 ) ★
  3. Spring-Data-MongoDB的Index注解的expireAfterSeconds参数不起作用?解决方案居然是这样的!...
  4. iShow UI for React 最佳实践
  5. 服务器客户端回射程序-自己设计包的结构
  6. POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
  7. SQL Server 中索引的禁用与删除
  8. 从Spark-Shell到SparkContext的函数调用路径过程分析(源码)
  9. 使用情态动词提出请求和问题_53
  10. 点餐小程序源码_微信小程序餐饮点餐商城前端模版
  11. RefreshParenwin 打开子窗体 并回发
  12. [编织消息框架][设计协议]位运算
  13. DevOps使用教程 华为云(11)git分支怎么用 分支合并 评审
  14. DDD~microsoft NLayerApp项目中的层次结构图
  15. 扫雷游戏(实现了网页版的扫雷游戏的所有逻辑)
  16. Guice 的工作原理
  17. 修改服务器电脑mac地址,修改服务器电脑mac地址
  18. fid和is_【GAN】用于生成图像的评价指标——IS和FID
  19. win10计算机丢失msvcr,win10计算机丢失MSVCR120文件怎么办
  20. windows与mac字体设置

热门文章

  1. 2022-2028年中国铅锌精矿粉行业市场研究及前瞻分析报告
  2. Python 标准库之 datetime
  3. docker run 或者 docker restart 启动镜像就自动退出
  4. PyTorch在NLP任务中使用预训练词向量
  5. KITTI数据集上MaskRCNN检测效果示例
  6. CVPR2020:4D点云语义分割网络(SpSequenceNet)
  7. 未来几年自动驾驶预测(上)
  8. SOLOv 2:实例分割(动态、更快、更强)
  9. 深度学习数据特征提取:ICCV2019论文解析
  10. java 内部类的理解