Java虚拟机学习笔记(二)--- 判断对象是否存活
2024-08-30 19:45:20
Java堆中存放着所有的对象实例,垃圾收集器在堆进行回收之前,需要判断对象是“存活”还是“死亡”(即不可能再被任何途径引用的对象)。
最常见的一种判断对象是否存活算法是引用计数算法,
给对象加一个引用计数器,每当一个地方引用它时,计数器就加1;引用失效时就减1;任何时刻计数器为0的对象就是不可再被使用的。此算法的缺点是无法处理对象之间相互引用的问题。
主流语言都是通过可达性分析来判定对象是否存活,即可达性分析算法。
其思路是通过一系列称为“GC- root”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC-root都没有任何引用链时,(用图论的话说,GC-root到此对象不可达),说明此对象不可用的,将会被判定为可回收对象。
最新文章
- myeclipse 内存不够用报错PermGen space 和 An internal error has occurred.
- JavaScript 基础第八天(DOM第二天)
- Deep learning:四十二(Denoise Autoencoder简单理解)
- jQuery实现购物车多物品数量的加减+总价计算
- JS调用水晶报表打印翻页按钮事件
- 面向对象的Javascript(4):重载
- PHP 页面编码声明与用header或meta实现PHP页面编码的区别
- ";Principles of Reactive Programming"; 之 <;Persistent Actor State>;学习笔记
- Android开发之极光推送基本步骤
- dockerfile语法
- Managing Spark data handles in R
- Android高仿qq及微信底部菜单的几种实现方式
- Office 365实现单点登录系列(1)—域环境搭建
- angular的时间指令 以及防止闪烁问题
- 【HDU - 4341】Gold miner(分组背包)
- java List集合
- ES6走一波 变量结构赋值
- 把linux文件夹压缩成tar.gz的命令
- 小程序之map地图上不能在覆盖层
- 关于Firedac的一点看法