并发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)
怎么查看和分析堆内存?共源 1
Java
CPU 满了怎么排查?共源 1
并发Java
哪些情况会发生栈溢出?共源 1
Java JVM并发Java
常用的 JVM 排查工具有哪些?共源 1
Java JVM并发Java
JVM 什么时候启动?共源 1
Java JVMJava
元信息
审核状态: active
关联来源: 1
来源面经题(0)
这道题目前没有手动沉淀的面经题来源。
来源(1)
Java八股(JVM).md
knowledge_noteQuestion 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。