(转)Java回收对象的标记 和 对象的二次标记过程
2024-08-25 12:28:50
二次标记
针对这个问题,虚拟机的做法是进行两次标记,即第一次标记不在“关系网”中的对象。第二次的话就要先判断该对象有没有实现finalize()方法了,如果没有实现就直接判断该对象可回收;如果实现了就会先放在一个队列中,并由虚拟机建立的一个低优先级的线程去执行它,随后就会进行第二次的小规模标记,在这次被标记的对象就会真正的被回收了。
finalize()在什么时候被调用?
有三种情况
1.所有对象被Garbage Collection时自动调用,比如运行System.gc()的时候.
2.程序退出时为每个对象调用一次finalize方法。
3.显式的调用finalize方法
举例说明
最新文章
- linux琐碎命令学习
- MFC编程入门之九(对话框:为控件添加消息处理函数)
- 中值排序的java实现
- php---分组函数group_concat()
- winner tree 胜者树
- 夺命雷公狗---Thinkphp----7之栏目配合Model的增删改查
- Nginx SSL配置过程
- Openjudge计算概论-DNA排序
- js dom操作获取节点的一些方法
- CNN- 数据预处理
- <;jsp:include>;和<;%@include%>;的区别
- iOS - Mac 常用设置
- 解读event.returnValue和return false
- Bootstrap之登陆页面范例
- python - 基础知识,if语句
- quartz配置参数org.quartz.jobStore.misfireThreshold含义解释
- u-boot移植(二)---修改前工作:代码流程分析1
- SoapUI Pro Project Solution Collection-XML assert
- 【转】Spring Framework灰度发布
- Structs复习 简单数据校验