文档章节

可达性分析算法

ChyiHuang
 ChyiHuang
发布于 2017/08/10 09:03
字数 310
阅读 25
收藏 0

在主流的商用程序语言(Java、C#,甚至包括前面提到的古老的Lisp)的主流实现中,都是称通过可达性分析(Reachability Analysis)来判定对象是否存活的。这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference  Chain),当一个对象到GC  Roots没有任何引用链相连(用图论的话来说,就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的。如图3-1所示,对象object 5、object 6、object 7虽然互相有关联,但是它们到GC Roots是不可达的,所以它们将会被判定为是可回收的对象。

在Java语言中,可作为GC Roots的对象包括下面几种:
虚拟机栈(栈帧中的本地变量表)中引用的对象。
方法区中类静态属性引用的对象。
方法区中常量引用的对象。
本地方法栈中JNI(即一般说的Native方法)引用的对象。

© 著作权归作者所有

上一篇: 垃圾收集算法
下一篇: 引用计数算法
ChyiHuang
粉丝 3
博文 53
码字总数 49816
作品 0
朝阳
程序员
私信 提问
(34讲)垃圾回收——判断对象是否存活算法-可达性分析法详解

对于验证对象是否为垃圾对象的算法,有两种,一种是引用计数法,另一种是可达性分析法,我们上一节已经对引用计数法做了一个详细的介绍,本节课来了解一下可达性分析法,我们知道,引用计数法...

G_66
01/16
0
0
JVM:判断一个Java对象是否存活

前言 如何判断一个Java对象是否存活对于垃圾回收、防止内存泄漏等十分重要 本文将全面讲解判断对象存活的方式,希望你们会喜欢 在接下来的日子,我会推出一系列讲解的文章,具体如下;感兴趣...

Carson_Ho
2018/09/26
0
0
三、垃圾收集之判断对象是否存活

一、引用计数算法 当有一个地方引用这个对象时,计数器加1 当引用失效时,计数器减1 当计数器为0时,则对象死亡,等待回收 二、 可达性分析算法 若一个对象无法通过引用链接到GC Roots时,则...

Swimmer
2016/11/30
8
0
详解JVM内存管理与垃圾回收机制2 - 何为垃圾

随着编程语言的发展,GC的功能不断增强,性能也不断提高,作为语言背后的无名英雄,GC离我们的工作似乎越来越远。作为Java程序员,对这一点也许会有更深的体会,我们不需要了解太多与GC相关的...

方志朋
2018/11/25
0
0
深入理解JVM学习笔记(二十、JVM 垃圾回收机制---如何判断对象是否为垃圾【可达性分析法】)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jintaohahahaha/article/details/82682065 可达性分析法 在主流的商用程序语言中(Java和C#),都是使用可达性分...

张--小涛涛
2018/09/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

texlive安装

Installing to: D:/bin/texlive/texlive/2019Installing [001/307, time/total: ??:??/??:??]: adobemapping [2130k]Installing [002/307, time/total: 00:03/08:57]: ae [84k]Installing......

MtrS
26分钟前
2
0
运维规范

命名规范 发布流程 监控告警 故障定位 状态 日志 监控

以谁为师
今天
2
0
约瑟夫环(报数游戏)java实现

开端 公司组织考试,一拿到考题,就是算法里说的约瑟夫环,仔细想想 以前老师将的都忘了,还是自己琢磨把~ package basic.gzy;import java.util.Iterator;import java.util.LinkedList;...

无极之岚
今天
3
0
Kernel字符设备驱动框架

Linux设备分为三大类:字符设备,块设备和网络设备,这三种设备基于不同的设备框架。相较于块设备和网络设备,字符设备在kernel中是最简单的,也是唯一没有基于设备基础框架(device结构)的...

yepanl
今天
3
0
Jenkins 中文本地化的重大进展

本文首发于:Jenkins 中文社区 我从2017年开始,参与 Jenkins 社区贡献。作为一名新成员,翻译可能是帮助社区项目最简单的方法。 本地化的优化通常是较小的改动,你无需了解项目完整的上下文...

Jenkins中文社区
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部