2 回收无效对象的过程
当经可达性算法筛选出失效的对象之后,并不是立即清除,而是再给对象一次重生的机会
判断是否覆盖finalize()
- 未覆盖该或已调用过该方法,直接释放对象内存
- 已覆盖该方法且还未被执行,则将finalize()扔到F-Queue队列中
- 执行F-Queue中的finalize()
虚拟机会以较低的优先级执行这些finalize(),不会确保所有的finalize()都会执行结束
如果finalize()中出现耗时操作,虚拟机就直接停止执行,将该对象清除
对象重生或死亡
- 如果在执行finalize()方法时,将this赋给了某一个引用,则该对象重生
- 如果没有,那么就会被垃圾收集器清除
注意:强烈不建议使用finalize()进行任何操作!
如果需要释放资源,请用try-finally或者其他方式都能做得更好.
因为finalize(
继续阅读与本文标签相同的文章
上一篇 :
算法:栈和队列-实战
下一篇 :
算法:优先队列-实战
-
【NLP实战】快速掌握常用的向量空间模型
2026-05-16栏目: 教程
-
腾讯云服务器Linux系统--安装Kafka
2026-05-16栏目: 教程
-
linux系统下,开启mysql的binlog日志
2026-05-16栏目: 教程
-
Firefox Private Network使用方法(极详细)
2026-05-16栏目: 教程
-
算法:深度、广度优先搜索算法与剪枝-理论
2026-05-16栏目: 教程
