Object的finalize()方法的作用是否与C++的析构函数作用相同
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++的析构函数作用相同相关推荐
- finalize java,Java中Object对象finalize方法详细解析
简书:capo 转载请注明原创出处,谢谢! 前言: 今天我们来看看Object中一个经常被人遗忘的方法,finalize方法.老规矩,我们先看看Javadoc是怎样描述这个方法的 /** * Call ...
- Object的finalize方法
一.一次标记 首先finalize方法是在垃圾回收时,用于确认该对象是否确认被回收的一个标记过程. 确认一个对象真正被回收需要经历两次标记过程: 可达性分析没有引用,这是第一次标记 是否有必要执行fi ...
- C#中Finalize方法的问题
C#中Finalize方法的问题 ninputer在关于"值类型的Finalize不会被调用"中(http://blog.joycode.com/lijianzhong/archi ...
- Java 中finalize()方法起什么作用呢?
转自: Java 中finalize()方法起什么作用呢? Java之finalize()方法功能说明 当我们在一个类中定义了finalize()方法时, 如果一个对象被垃圾收集器析构(回收)之前,则 ...
- Java基础Object类的finalize方法
1.在Object类中的源代码: protected void finalize() throws Throwable { } GC:负责调用finalize()方法. 2.finalize()方法只 ...
- Object类九大方法之finalize方法
Object类九大方法之finalize方法 finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法. finalize的作用 ...
- java object finalize_Java Object finalize() 方法
Object finalize() 方法用于实例被垃圾回收器回收的时触发的操作. 当 GC (垃圾回收器) 确定不存在对该对象的有更多引用时,对象的垃圾回收器就会调用这个方法. 语法 protecte ...
- finalize方法作用
垃圾回收机制的一个算法,算法分析理解起来比较抽象,再讲一下新生代和老年代,垃圾回收机制的一个策略,垃圾回收机制是干嘛用的,1. 什么是垃圾回收机制?相当于JVM不定时的去回收不可达的对象,他这个完全是 ...
- java finalize 作用_java中的finalize方法有什么作用
java中的finalize方法是Object类中提供的一个方法,在GC准备释放对象所占用的内存空间之前,它将首先调用finalize()方法. finalize()方法是Object类中提供的一个方 ...
最新文章
- python3 tcp 文件传输源码
- 【计算机网络】网络安全 : 总结 ( 网络攻击类型 | 网络安全指标 | 数据加密模型 | 对称密钥密码体质 | 公钥密码体质 | 数字签名 | 报文鉴别 | 实体鉴别 | 各层安全 ) ★
- Spring-Data-MongoDB的Index注解的expireAfterSeconds参数不起作用?解决方案居然是这样的!...
- iShow UI for React 最佳实践
- 服务器客户端回射程序-自己设计包的结构
- POI对EXCEL的操作【重点:如何设置CELL格式为文本格式】
- SQL Server 中索引的禁用与删除
- 从Spark-Shell到SparkContext的函数调用路径过程分析(源码)
- 使用情态动词提出请求和问题_53
- 点餐小程序源码_微信小程序餐饮点餐商城前端模版
- RefreshParenwin 打开子窗体 并回发
- [编织消息框架][设计协议]位运算
- DevOps使用教程 华为云(11)git分支怎么用 分支合并 评审
- DDD~microsoft NLayerApp项目中的层次结构图
- 扫雷游戏(实现了网页版的扫雷游戏的所有逻辑)
- Guice 的工作原理
- 修改服务器电脑mac地址,修改服务器电脑mac地址
- fid和is_【GAN】用于生成图像的评价指标——IS和FID
- win10计算机丢失msvcr,win10计算机丢失MSVCR120文件怎么办
- windows与mac字体设置