# 1. JDK 25/26 下 G1/ZGC/Shenandoah 的选型依据(暂停目标、堆规模、吞吐) A G1 通用性最好,ZGC/Shenandoah 面向低暂停与大堆,选型需权衡暂停/吞吐/堆规模 ✓ 正确答案 B ZGC 吞吐高于 G1 C Shenandoah 只适合小堆 D G1 无法处理大堆
# 2. 将 Spring Boot 4.x 原生镜像投入生产时,与 HotSpot 相比 JFR、JVMTI Agent、堆转储、动态附加和栈符号化有哪些能力缺口或语义差异 A 原生镜像不支持 JVMTI Agent、运行时动态附加,JFR 支持受限,栈为原生栈 ✓ 正确答案 B 原生镜像支持完整的 JVMTI Agent C 原生镜像与 HotSpot 工具链完全相同 D 原生镜像支持 JIT 相关工具
# 3. Project Leyden 当前交付的是围绕 CDS/AOT 缓存、提前类加载链接和方法画像的渐进式能力,而不是把任意 Java 应用直接编译成独立原生可执行文件;它与 GraalVM Native Image 在闭世界假设、峰值吞吐、缓存可移植性和动态类加载方面有何本质差异 A Leyden 与 GraalVM 完全相同 B GraalVM 保留动态类加载 C Leyden 用渐进式 AOT 缓存,保留动态类加载与 JIT 升级;GraalVM 闭世界、可移植性差 ✓ 正确答案 D Leyden 能编译成任意独立可执行文件
# 4. JDK 25/26 的 Generational Shenandoah 在大堆的优势 A 分代化让大堆回收更高效,提升吞吐并保持低暂停 ✓ 正确答案 B 分代 Shenandoah 只适合小堆 C 分代化会显著增加暂停 D 分代 Shenandoah 与旧版无差异
# 5. JEP 483/516 AOT 加载与缓存的启动加速 A JEP 483/514 提前生成 AOT 缓存,JEP 516 预创建对象,启动时加载减少编译与分配 ✓ 正确答案 B AOT 缓存无法加速启动 C 两者只加速 JIT 编译 D AOT 缓存只影响运行时性能
# 6. JEP 502/526 与单例模式的取舍 A Lazy Constants 可替代所有单例 B 两者完全相同 C Lazy Constants 适合惰性常量值,单例适合全局唯一有状态对象,按需选择 ✓ 正确答案 D 单例比 Lazy Constants 更简洁
# 7. JEP 506 Scoped Values 的高并发优势 A Scoped Values 在虚拟线程下读写更高效、无泄漏、线程安全 ✓ 正确答案 B Scoped Values 比 ThreadLocal 更慢 C Scoped Values 会泄漏 D Scoped Values 与 ThreadLocal 性能相同
# 8. JDK 25/26 与 GraalVM 25+ 的协作 A GraalVM 25 与 JDK 25 对齐,原生镜像与 AOT 缓存、GC 特性协同 ✓ 正确答案 B GraalVM 与 JDK 版本无关 C GraalVM 只支持老 JDK D 两者无法协作
# 9. JDK 25/26 的 Compact Object Headers 在容器内存的影响 A 对象头压缩会增加内存占用 B 与 GC 无关 C 只影响大对象 D 压缩对象头减少对象内存开销,容器受限内存下提升利用率、降低 GC 压力 ✓ 正确答案
# 10. JDK 25/26 的 JFR Streaming API A JFR Streaming API 允许实时订阅 JFR 事件流,用于监控与告警 ✓ 正确答案 B JFR Streaming 只能事后分析 C JFR Streaming 无法消费事件 D JFR Streaming 只有转储文件
# 11. JEP 484 Class-File API 与字节码工具的演进 A 它只能读取类文件 B 它只能解析旧字节码 C 它替代了所有专门的字节码需求 D 它是 JDK 标准化的类文件读取/生成/变换 API,JDK 24 定稿 ✓ 正确答案
# 12. JEP 485 Stream Gatherers 的应用 A Gatherers 支持滑窗、去重、聚合等自定义中间操作,与并行流兼容 ✓ 正确答案 B Gatherers 只能用于简单过滤 C Gatherers 无法组合 D Gatherers 与 Stream 无关
# 13. jdeps/jdeprscan 在检测 JDK 内部 API 使用与模块化迁移中的应用 A jdeps 只扫弃用 API B 两者无法定位内部 API C jdeprscan 检测模块依赖 D jdeps 检测内部 API 与模块依赖,jdeprscan 扫描弃用 API,配合模块化迁移 ✓ 正确答案
# 14. 从 jcmd GC.heap_dump 到 MAT 支配树的现代堆分析流程与 JFR 的配合 A jcmd 生成堆转储,MAT 支配树定位大对象,JFR 提供分配与 GC 上下文,配合分析 ✓ 正确答案 B jcmd 只能生成文本日志 C MAT 没有支配树 D JFR 无法配合堆分析
# 15. JEP 454 在 JDK 22 将 Foreign Function & Memory API 定稿后,Arena 的 confined、shared 与 auto 生命周期如何约束 MemorySegment 的跨线程访问和释放?把 JNI 库迁移为 Linker 的 downcall/upcall 时,结构体布局、回调存活期、errno 捕获和原生崩溃隔离应如何测试 A confined Arena 可跨线程访问 B 迁移 JNI 无需测试布局 C auto Arena 释放时机确定 D confined 单线程、shared 可跨线程、auto 由 GC 回收,迁移 JNI 需测试布局/回调/errno/崩溃 ✓ 正确答案
# 16. JEP 502/526 Stable Values/Lazy Constants 的延迟初始化收益 A 延迟初始化会增加启动开销 B 值在首次访问时初始化,减少启动开销与内存占用,且线程安全 ✓ 正确答案 C 延迟初始化不节约资源 D 延迟初始化需 DCL 样板
# 17. JDK 25/26 的 Foreign Function API 演进 A FFM 持续增强 Linker/布局/受限方法处理,是 JNI 的现代替代 ✓ 正确答案 B FFM 已被移除 C FFM 只支持 downcall D FFM 与 JNI 无关
# 18. JDK 25/26 的 jlink/jpackage 演进 A jlink 无法配合 AOT B jlink 与 jpackage 功能相同 C jpackage 只能打包单一平台 D jlink 支持链接时生成 CDS/AOT 缓存,jpackage 增强跨平台打包与签名 ✓ 正确答案
# 19. JDK 25/26 的工具链(jcmd/jstat/jfr)增强 A jcmd/jstat/jfr 增强了对 AOT、虚拟线程、HTTP/3、final 完整性等新特性的诊断 ✓ 正确答案 B jcmd 无法处理虚拟线程 C jfr 没有新事件 D jstat 无法统计分代 GC
# 20. JEP 508/529 Vector API 的应用场景 A Vector API 只适合串行逻辑 B Vector API 无法提升性能 C Vector API 适合图像处理、矩阵乘法、统计分析等可向量化数值计算 ✓ 正确答案 D Vector API 只能用于字符串
# 21. JEP 509 JFR CPU-Time 的 CPU 剖析 A 它等同于 wall-clock 采样 B 它只记录 I/O 时间 C 它基于 CPU 时间,更准确反映计算热点,排除 I/O 等待干扰 ✓ 正确答案 D 它是转储分析
# 22. Spring Boot 4.x 的 AOT 处理与 GraalVM Native Image 25+ 的闭世界分析分别负责什么 A 两者职责相同 B Spring Boot AOT 生成容器元数据与配置,GraalVM 闭世界分析做静态可达性分析,分工配合 ✓ 正确答案 C GraalVM 负责 Spring 容器构建 D Spring Boot AOT 不做构建时优化
# 23. Vector API 从 JEP 489(JDK 24)、JEP 508(JDK 25) A JEP 489 是第 9 次孵化,JEP 508 是第 10 次孵化,持续优化 API 与可移植性 ✓ 正确答案 B JEP 489 已转正 C Vector API 在 JDK 24 已定稿 D 两次版本无变化