模型服务连接失败
并发Java
分类
Java 并发
难度
未设置
来源数
1
更新时间
2026/03/29 01:13

答案

它主要包括几个部分:young gc、并发标记、混合gc、full gc 1. young gc:主要包括几个步骤: 1. 扫描根:对伊甸园区中根可直达的直接对象进行标记。 2. 更新RSet:更新RSet,确保RSet能够反映老年代对所在内存分段中对象的引用 3. 处理RSet:根据RSet处理被老年代引用的新生代对象,其被认为是存活对象 4. 复制对象:遍历整个 对象树,进行复制,eden/survivor -> suvivor/old 5. 处理引用:处理软弱虚等引用 2. 并发标记:主要包括几个步骤 1. 初始标记:标记GC ROOT直接可达的对象,并会触发一次young gc,是STW的 2. 根区域扫描:初始标记结束,也完成了eden区到survivor区的复制工作,所有新复制的survivor区的对象都会被标记为根对象,需要在下一次younggc前完成 3. 并发标记:在整个堆中进行并发标记,如果发现区域对象全部都是垃圾则会立即回收这块区域,同时,会计算每个区域的活性 4. 再次标记:同样由于并发标记阶段用户程序执行,因此需要STW再次标记,修正并发标记的结果 5. 独占清理:STW计算并根据区域对象活性进行排序,为回收做准备 6. 并发清理:进行回收完全空虚的垃圾 3. 混合回收:当越来越多的对象晋升到老年代,到达阈值时就会触发混合回收,混合回收并不是full gc,不会对老年代仅完整的回收,只会回收一部分,回收部分包括部分老年代内存、全部年轻代内存

相关题目(5)

元信息

审核状态: active
关联来源: 1

来源面经题(0)

这道题目前没有手动沉淀的面经题来源。

来源(1)

Java八股(JVM).md

knowledge_note
Question 40: G1 的垃圾回收过程是怎样的? Source answer: 它主要包括几个部分:young gc、并发标记、混合gc、full gc 1. young gc:主要包括几个步骤: 1. 扫描根:对伊甸园区中根可直达的直接对象进行标记。 2. 更新RSet:更新RSet,确保RSet能够反映老年代对所在内存分段中对象的引用 3. 处理RSet:根据RSet处理被老年代引用的新生代对象,其被认为是存活对象 4. 复制对象:遍历整个 对象树,进行复制,eden/survivor -> suvivor/old 5. 处理引用:处理软弱虚等引用 2. 并发标记:主要包括几个步骤 1. 初始标记:标记GC ROOT直接可达的对象,并会触发一次young gc,是STW的 2. 根区域扫描:初始标记结束,也完成了eden区到survivor区的复制工作,所有新复制的survivor区的对象都会被标记为根对象,需要在下一次younggc前完成 3. 并发标记:在整个堆中进行并发标记,如果发现区域对象全部都是垃圾则会立即回收这块区域,同时,会计算每个区域的活性 4. 再次标记:同样由于并发标记阶段用户程序执行,因此需要STW再次标记,修正并发标记的结果 5. 独占清理:STW计算并根据区域对象活性进行排序,为回收做准备 6. 并发清理:进行回收完全空虚的垃圾 3. 混合回收:当越来越多的对象晋升到老年代,到达阈值时就会触发混合回收,混合回收并不是full gc,不会对老年代仅完整的回收,只会回收一部分,回收部分包括部分老年代内存、全部年轻代内存 Reviewed answer: G1回收过程通常包括Young GC、并发标记、混合回收和必要时的Full GC。并发标记阶段又包括初始标记、根区域扫描、并发标记、再次标记、清理等步骤;混合回收会同时回收全部年轻代和部分老年代Region。