导航:首页 > 源码编译 > 可达性算法根

可达性算法根

发布时间:2025-05-12 01:53:15

⑴ 可达性分析算法(根搜索算法GCRoots)

根搜索算法的基本思路就是通过一系列名为”GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。

这个算法的基本思想是通过一系列称为“GC Roots”的对象作为起始点,从这些节点向下搜索,搜索所走过的路径称为引用链,当一个对象到GC Roots没有任何引用链(即GC Roots到对象不可达)时,则证明此对象是不可用的。

那么问题又来了,如何选取GCRoots对象呢?在Java语言中,可以作为GCRoots的对象包括下面几种:

(1). 虚拟机栈(栈帧中的局部变量区,也叫做局部变量表)中引用的对象。

(2). 方法区中的类静态属性引用的对象。

(3). 方法区中常量引用的对象。

(4). 本地方法栈中JNI(Native方法)引用的对象。

下面给出一个GCRoots的例子,如下图,为GCRoots的引用链。

根搜索算法的基本思路就是通过一系列名为”GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连时,则证明此对象是不可用的。

从上图,reference1、reference2、reference3都是GC Roots,可以看出: reference1-> 对象实例1; reference2-> 对象实例2; reference3-> 对象实例4; reference3-> 对象实例4 -> 对象实例6; 可以得出对象实例1、2、4、6都具有GC Roots可达性,也就是存活对象,不能被GC回收的对象。 而对于对象实例3、5直接虽然连通,但并没有任何一个GC Roots与之相连,这便是GC Roots不可达的对象,这就是GC需要回收的垃圾对象。

阅读全文

与可达性算法根相关的资料

热点内容
天狼星视频加密系统 浏览:937
android百度地图下载 浏览:198
mac不能写入移动硬盘有没有什么命令 浏览:631
创建新文件夹怎么备份 浏览:257
我的世界电脑版中国版服务器下载地址 浏览:713
安卓平板为什么创建下载文件失败 浏览:232
如何快速提高自律app 浏览:20
中文单片机程序设计语言 浏览:690
为什么电脑写程序编译不了 浏览:578
单片机精确计时 浏览:127
程序员与ui那个工资高 浏览:42
如何把c语言代码放到编译器 浏览:603
app开发用什么语言好 浏览:313
crmjava开源系统 浏览:246
电气工程师程序员年薪 浏览:131
设计院文件加密破解 浏览:842
苹果appstore在哪里看余额 浏览:635
linuxnfs开机挂载 浏览:882
godes加密 浏览:377
战狼2什么时候上映app 浏览:659