如何判断对象是否“存活”
2016-07-23 09:02
225 查看
2016-07-17
如何判断对象是否“存活”
1、常见的两种判断对象是否“存活”的算法。
1)引用计数算法
给对象中添加一个引用计数器,每当有一个地方引用它时计数器值就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。(说明:虚拟机并不是通过引用计数算法来判断对象是否存活的)
2)可达性分析算法
算法思路:以“GC Roots”的对象作为起始点,从这些点开始向下搜索,搜索所经过的路径称为“引用链”,当一个对象到GC Roots没有任何引用链相连时,则证明对象是不可用的。
1、在Java语言中,可作为GC Roots的对象包括:
1)虚拟机栈中引用的对象;
2)方法区中类静态属性引用的对象;
3)方法区中常量引用的对象;
4)本地方法栈中JNI引用的对象。
如何判断对象是否“存活”
1、常见的两种判断对象是否“存活”的算法。
1)引用计数算法
给对象中添加一个引用计数器,每当有一个地方引用它时计数器值就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。(说明:虚拟机并不是通过引用计数算法来判断对象是否存活的)
2)可达性分析算法
算法思路:以“GC Roots”的对象作为起始点,从这些点开始向下搜索,搜索所经过的路径称为“引用链”,当一个对象到GC Roots没有任何引用链相连时,则证明对象是不可用的。
1、在Java语言中,可作为GC Roots的对象包括:
1)虚拟机栈中引用的对象;
2)方法区中类静态属性引用的对象;
3)方法区中常量引用的对象;
4)本地方法栈中JNI引用的对象。
相关文章推荐
- eclipse之提交分支到svn
- 浅谈servlet中的request与response
- HDU5724 Chess
- (1) redis windows安装
- 写时拷贝 引用计数器模型
- 与HotSpot虚拟机对象有关的问题
- 家里蹲大学数学杂志第7卷第481期一道实分析题目参考解答
- 网易实习生笔试题:二叉树
- Web压缩过滤器
- SOC_SINGLE(xname, reg, shift, max, invert) 参数测试
- 线段树单点更新 区间求和,求最值
- Maven那点事儿(Eclipse版)
- 引用的图片
- 郑大校赛-NYOJ-201-作业题(动态规划)
- poj 2105 大数
- golang实现通过smtp发送电子邮件的方法
- 【杭电】[1009]FatMouse' Trade
- Apache Maven 入门篇(下)
- [翻译,boost]共享内存_3_内存映射文件
- Apache Maven 入门篇 ( 上 )