首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
说说GC的可达性分析。
[问答题]
说说GC的可达性分析。
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(100)
分享
纠错
28个回答
添加回答
31
牛客793464225号
GC中的可达性分析算法适用于判断对象是否存活。这个算法以根对象为起始节点,,根据引用关系向下搜寻,搜索所经过的路径就是“引用链”,如果一个对象没有任何引用链,就说明该对象不会再被使用,要被垃圾回收。常见的GCroot对象:方法区中的静态属性变量。所有堆中实例化对象。方法区中常量池引用对象
发表于 2022-06-23 11:24:33
回复(1)
3
别打小书包唉
可达性分析算法用于判断对象是否可以被回收,程序通过GC Roots中的对象为起点,以类之间的引用关系简历引用链,最终形成一个类似于数据结构中森林的一个结果,不存在与森林中的对象便是需要被回收的对象。这里的GC Roots主要包括线程栈中引用的变量,本地方法栈中引用的变量,方法区中的静态引用对象,常量池中的常量引用对象和被锁引用的对象。对一个对象真正的宣告回收需要经历两次标记过程,如果一个对象不再引用链上就会对它进行第一次标记,并判断它是否重新了finalize方法,若未重新或finalize方法已经被执行过了则会直接回收对象,否则会创建一个F-queue队列来存储这些对象,并启动一个低优先级的Finalizer线程去执行它们的finalize方法。第二次标记,稍后收集器会对队列中的对象进行可达性分析并标记,若仍然存在标记则表明该对象没有通过finalize方法实现自救则直接回收,否则对象复活。任何对象的finalize方法都只能被调用一次。
发表于 2022-07-25 11:34:14
回复(0)
3
Chaos1874
可达性分析算法用于判断对象是否可以被回收,程序通过GCRoots中的对象为起点以类之间的引用关系建立引用链,最终形成一个类似于数据结构中森林的一个结果,不存在与森林中的对象便是需要被回收的对象。这里的GcRoots主要包括线程栈中引用的变量,本地方法栈中引用的变量,方法区中的静态引用对像,常量池中的常量引用对象和被锁引用的对象。对一个对象真正的宣告回收需要经历两次标记过程,如果一个对象不在引用链上就会对他进行第一次标记,并判断它是否重新了finalize方法,若未重写或finalize方法已经被执行过了则会直接回收对象,否则会创建一个F-queue队列来存储这些对象,并启动一个低优先级的Finalizer线程区执行它们的finalize方法。第二次标记,稍后收集器会对队列中的对象进行可达性分析并标记,若任然存在标记则表明该对象没有通过finalize方法实现自救则直接回收,否则对象复活。任何对象的finalize方法都只会被调用一次。
发表于 2022-05-18 16:36:50
回复(0)
2
深情的三文鱼在写面经
gc可达性就是 根据可行性算法 判断对象是否存活 以跟对象为起始节点 根据引用关系向下搜索 搜索的路径就是 引用链 如果 一个对象 没有任何引用链 就被回收
发表于 2023-08-22 09:03:10
回复(0)
1
赫敏大王
可达性分析用于判断对象存活,从被称为GC Roots的根对象出发,遍历所有引用链。将无法到达的对象视为垃圾,需被回收。可达性分析可避免引用计数法产生的循环引用问题。
发表于 2025-06-07 15:53:31
回复(0)
1
时笙月
GC采用有向图的方式记录和管理堆(heap)中的所有对象。通过这种方式确定哪些对象是"可达的",哪些对象是"不可达的".当GC确定一些对象为"不可达"时,GC就有责任回收这些内存空间。 注:判断对象"不可达",一般有两种方法,即引用计数法和可达性分析法。 可达性分析:基本思想是通过一系列的“GC Roots”对象作为起点进行搜索,如果在“GC Roots”和一个对象之间没有可达路径,则称该对象是不可达的,不过要注意的是被判定为不可达的对象不一定就会成为可回收对象。被判定为不可达的对象要成为可回收对象必须至少经历两次标记过程,如果在这两次标记过程中仍然没有逃脱成为可回收对象的可能性,则基本上就真的成为可回收对象了。
发表于 2023-08-01 14:43:47
回复(0)
1
黄俊忠
可达性分析的目的是查找可回收对象,对GC roots作为根对象,利用引用关系进行向下查找,这一段路程被称为“引用链”,当对象没有任何引用链证明对象可以回收。常见的根对象为方法区的静态属性变量,方法区中常量池引用对象
发表于 2022-09-03 14:13:57
回复(0)
0
牛客152771347号
GC中的可达性分析算法适用于判断对象是否存活。 这个算法以根对象为起始节点,,根据引用关系向下搜寻,搜索所经过的路径就是“引用链”,如果一个对象没有任何引用链,就说明该对象不会再被使用,要被垃圾回收。常见的GCroot对象:方法区中的静态属性变量。堆中实例化对象。方法区中常量池引用对象。
发表于 2025-05-26 16:49:52
回复(0)
0
layiuuu
判断对象是否死亡的方法,GCRoots由虚拟栈机中的局部变量引用的对象、方法区中的静态变量与常量引用的对象、本地方法中引用的对象、锁持有的对象等构成。从GCRoots开始遍历,访问不到的对象,就会被标记为死亡
发表于 2025-05-01 15:28:50
回复(0)
0
Lucerys11
GC中的可达性分析算法适用于判断对象是否存活。这个算法以根对象为起始节点,,根据引用关系向下搜寻,搜索所经过的路径就是“引用链”,如果一个对象没有任何引用链,就说明该对象不会再被使用,要被垃圾回收。常见的GCroot对象:方法区中的静态属性变量。所有堆中实例化对象。方法区中常量池引用对象
发表于 2025-03-25 11:11:04
回复(0)
0
紫薯韧性十足
基本思路就是通过一系列称为“GC Roots”的根对象作为起始节点集,从这些节点开始,根据引用关系向下搜索,搜索过程所走过的路径称为“引用链”,如果某个对象到GC Roots间没有任何引用链相连,或者用图论的话来说就是从GC Roots到这个对象不可达时,则证明此对象是不可能再被使用的。
发表于 2025-03-18 21:08:10
回复(1)
0
不合适
以GCROOT开始,向下搜索,如果有引用则加入引用链。 没被引用的对象则被回收。 虚拟机栈,常量引用的对象,静态常量引用的对象可能会作为gcroot
发表于 2025-03-09 19:20:15
回复(0)
0
一个编程牛
GC Roots、引用链
发表于 2024-09-04 16:42:07
回复(0)
0
王鹏的好室友
设置GCroot,根据引用关系向下遍历,没有引用链的对象被视为不可达,需要回收。 GCroot:虚拟机栈中引用的对象、方法区中静态属性引用的对象、方法区中常量引用的对象
发表于 2024-08-16 19:42:12
回复(0)
0
牛客311133904号
GC的可达性分析是判断对象是否存活的一种方法,通过判断某个对象与GCRoot之间是否存在引用链, 有,则对象存活 否,则对象需要回收 GCRoot:虚拟机栈中引用的对象、方法区中静态属性引用的对象、方法区中常量引用的对象
发表于 2024-07-10 21:43:14
回复(0)
0
犹豫的她在拧螺丝
可达性分析的思想是:通过每一个“GC Roots”对象为起点,从这些起点开始向下搜索,节点所走过的路径为引用链,当一个对象到达GC Roots对象没有任何引用链使,说明这个对象为废弃对象
发表于 2024-05-19 19:23:50
回复(0)
0
钟情于风TuT
GC的可达性分析是判断对象是否存活的一种方法,通过GCRoots开始向下搜索,节点所走过的路径称为引用链,判断引用对象之间是否是可达的,解决了引用计数法之间对象相互引用无法被垃圾回收的问题 GCRoots有哪些: 活着的线程,系统类加载器加载的对象,被锁锁住的对象 引用线程栈帧中的方法参数、局部变量等 引用类中的静态变量
编辑于 2024-04-02 17:42:49
回复(0)
0
牛客380258662号
与GCRoot是否还有引用链 有,则不是垃圾,不回收 无,是垃圾,回收 GCRoot: 1、虚拟机栈中引用的对象 2、方法区中的静态变量和常量引用的对象
编辑于 2024-03-16 14:53:25
回复(0)
0
豆豆豆豆豆豆豆豆皮
编辑于 2024-03-08 11:32:08
回复(0)
0
说我这儿没问题啊的林北很爱刷美剧
GC的可达性分析判断对象是否存活,以根对象为起始节点 根据引用关系向下搜寻 如果一个对象没有被引用 表示不会在使用 就会被回收
编辑于 2024-03-05 20:10:06
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
上传者:
real1993
难度:
28条回答
100收藏
2508浏览
热门推荐
相关试题
如图 1 表示使用快表(页表)的虚...
编程基础
评论
(1)
4.该校1997年男女教师的比例为...
资料分析
言语理解与表达
资料分析
评论
(1)
计算机在工作过程中,若突然停电,(...
计算机常识
普及
C++
Pascal
选择题
评论
(1)
来自
NOIP2008初赛普及组
MySQL中执行 SELECT I...
SQL
评论
(1)
订单表order_table全部记...
查找
数据库
数据分析
SQL
评论
(2)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题