JVM · 单选题 · 第 27 题
Java 后端开发面试 · 第 27 题
关于 G1 垃圾收集器,下列说法正确的是?
- A把堆划分成许多大小相等的 Region,优先回收垃圾最多的 Region,可以设置期望停顿时间
- B把堆在物理上划分成连续的新生代和老年代两大块,与 Parallel 收集器的布局完全一样
- C整个回收过程完全没有 Stop-The-World 停顿,所有阶段都与应用线程并发执行
- D只适合几百 MB 以下的小堆,堆一旦超过 4GB 就会自动退化为串行收集器运行
答案
A A. 把堆划分成许多大小相等的 Region,优先回收垃圾最多的 Region,可以设置期望停顿时间
解析
G1 的新生代和老年代只是逻辑上的 Region 集合,不要求物理连续。它根据各 Region 的回收收益和 -XX:MaxGCPauseMillis 目标挑选回收集,这就是 Garbage First 名字的由来。G1 仍有 STW 阶段,比如 Young GC 和最终标记。JDK 9 起它是默认收集器。