JVM · 单选题 · 第 28 题
Java 后端开发面试 · 第 28 题
关于 ZGC,下列说法正确的是?
- A通过适当延长每次 STW 停顿的时间来换取更高的吞吐量,适合离线的大数据批处理任务
- B只能在 32 位 JVM 上使用,堆最大不能超过 4GB,所以不适合大内存服务
- C目标是在很大的堆上也保持毫秒级以下的停顿,标记和整理等工作大多与应用线程并发
- D不做任何内存整理,只依靠标记-清除回收内存,长期运行后碎片会越来越多
答案
C C. 目标是在很大的堆上也保持毫秒级以下的停顿,标记和整理等工作大多与应用线程并发
解析
ZGC 用染色指针和读写屏障,让对象移动也能与应用线程并发进行,停顿时间基本不随堆大小增长,可以支持 TB 级的堆。JDK 21 引入分代 ZGC,JDK 23 起它成为默认模式,JDK 24 移除了非分代模式。它以少量吞吐和 CPU 开销换取极低延迟,适合对延迟敏感的服务。