文档章节

可达性分析算法

ChyiHuang
 ChyiHuang
发布于 2017/08/10 09:03
字数 310
阅读 7
收藏 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
粉丝 0
博文 44
码字总数 37620
作品 0
朝阳
程序员
三、垃圾收集之判断对象是否存活

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

Swimmer
2016/11/30
8
0
虚拟机篇 之「垃圾收集器与内存分配策略」

版权声明:Follow your heart and intuition. https://blog.csdn.net/qq_35246620/article/details/82079114 温馨提示:本系列博文(含示例代码)已经同步到 GitHub,地址为「java-skills」,...

维C果糖
08/26
0
0
深入理解JVM学习笔记(二十、JVM 垃圾回收机制---如何判断对象是否为垃圾【可达性分析法】)

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

张--小涛涛
09/13
0
0
Java虚拟机之内存管理

内存模型 一说到内存管理,首先需要了解它的内存模型。 虚拟机的内存模型在jdk1.8之后有了一些变化,我们分开来看,请看下图: 由图我们可以看出,jdk每个版本都会有新生代和老年代,唯一不同...

lynnlovemin
2017/09/19
0
0
动态联通性问题--union-find算法

连通性问题 在给定的一张节点网络(也就是图)中,判断两个节点之是否可达的问题就是连通性问题。 场景:判断两个用户之间是否存在间接社交关系;判断两台计算机之间是否建立连接等。 定义数...

akane_oimo
2017/12/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
29分钟前
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
33分钟前
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
42分钟前
1
0
android -------- Data Binding的使用 ( 六) 自定义属性

今天来说说DataBinding在自定义属性的使用 默认的android命名空间下,我们会发现并不是所有的属性都能直接通过data binding进行设置,比如margin,padding,还有自定义View的各种属性。 默认...

切切歆语
48分钟前
1
0
收邮件 下载附件

uses IdMessage, IdMessageParts, IdAttachment, IdGlobalProtocols, ...;procedure SaveAttachmentsFromFile(FileName: String)var IdMessage: TIdMessage; MsgPart: Ti......

vga
54分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部