# 1. JDK 26 与 Spring Boot 4.1.0 的兼容 A JDK 26 是 LTS,必须生产使用 B Spring Boot 4.1.0 的 Java 17 字节码可在 JDK 26 上运行,但需验证 JDK 26 行为变化 ✓ 正确答案 C JDK 26 移除了 Java 17 字节码支持 D JDK 26 与 Spring Boot 完全不兼容
# 2. AOT 缓存归档失效的触发条件、可观测信号与安全回退路径 A 缓存失效会导致应用无法启动 B AOT 缓存与类路径无关 C 缓存失效时 JVM 自动回退到 JIT 编译,保证正确性 ✓ 正确答案 D 缓存失效只能通过重启解决
# 3. JEP 516 AOT 对象缓存与不同垃圾收集器协作的启动收益验证 A AOT 对象缓存只支持 G1 B AOT 对象缓存预创建启动期高频对象,减少分配,收益可对比启动时间验证 ✓ 正确答案 C AOT 对象缓存会增加启动期分配 D AOT 对象缓存与 GC 无关
# 4. JEP 522 为什么用双 Card Table 和原子交换减少 G1 应用线程写屏障与并发 Refinement 线程之间的同步 A JEP 522 用锁来同步写屏障与 Refinement B JEP 522 移除了 Card Table C JEP 522 用双 Card Table 和原子交换让写屏障无等待,减少同步 ✓ 正确答案 D JEP 522 只影响 ZGC
# 5. G1 同步削减后如何区分吞吐收益与暂停时间分布变化 A 只需测量吞吐量即可 B 只需观察 GC 日志 C 暂停时间分布与吞吐完全无关 D 应同时测量吞吐(OPS)与暂停分布(P50/P95),并做对照实验 ✓ 正确答案
# 6. JDK 26 容器镜像灰度时 CDS/AOT 归档与运行时构建一致性校验 A 应校验归档指纹(JDK 版本、类路径哈希、架构),灰度时先验证归档加载 ✓ 正确答案 B 归档与运行时类路径无关 C 归档在容器中无法使用 D 归档失效会直接导致崩溃
# 7. JEP 500 对反射、框架注入和反序列化写入 final 字段的迁移影响 A JEP 500 允许随意反射修改 final 字段 B JEP 500 与反射无关 C JEP 500 只影响普通字段 D JEP 500 逐步限制反射/Unsafe/反序列化写入 final 字段,框架应迁移到 VarHandle 或构造器注入 ✓ 正确答案
# 8. JEP 522 通过减少同步提升 G1 吞吐量时应使用的对照指标 A 仅看 GC 计数 B 应用吞吐量(OPS)、GC 时间占比与写屏障/Refinement 相关统计 ✓ 正确答案 C 仅看堆大小 D 仅看线程数
# 9. final 字段完整性限制对 JNI、Unsafe 和深反射工具链的影响 A JNI 和 Unsafe 仍可自由修改 final 字段 B 这些工具链修改 final 字段的行为被限制,需迁移到 VarHandle 或构造器注入 ✓ 正确答案 C final 完整性不影响 Unsafe D 深反射不受影响
# 10. 原始类型模式中的数值精确性检查、守卫条件和装箱差异 A 原始类型模式必须先将值装箱 B 原始类型模式不支持守卫条件 C 原始类型模式在窄类型匹配时做数值精确性检查,避免精度丢失 ✓ 正确答案 D 原始类型模式只支持 int
# 11. 结构化并发预览 API 再次演进时如何隔离业务代码与孵化接口 A 业务代码应直接依赖 StructuredTaskScope 预览 API B 预览 API 一旦发布就不会变化 C 通过适配层封装并隔离预览 API,避免业务代码直接依赖 ✓ 正确答案 D 无法隔离预览 API
# 12. JDK 26 与 Spring AI 2.0.0(Java 17+ 基线) A Spring AI 2.0.0 要求 Java 8 基线 B Spring AI 只支持 JDK 26 C Spring AI 2.0.0 采用 Java 17+ 基线,可在 JDK 26 上运行 ✓ 正确答案 D Spring AI 与虚拟线程无关
# 13. JDK 26 与 Spring Modulith 2.1.0 的兼容 A Spring Modulith 只支持 Java 8 B Spring Modulith 与模块化无关 C Spring Modulith 无法在 JDK 26 使用 D Spring Modulith 2.1.0 支持 Java 17+,可在 JDK 26 运行,需验证反射与模块扫描 ✓ 正确答案
# 14. JEP 486(JDK 24)永久禁用 Security Manager 后,JDK 26 中依赖 SecurityManager 权限模型的存量代码如何迁移 A JDK 26 中调用 SecurityManager API 会报错,需迁移到模块化/语言级约束 ✓ 正确答案 B JDK 26 中 SecurityManager 仍可正常使用 C 只需升级 JDK 版本即可保留 SecurityManager D Security Manager 只影响 Applet
# 15. Lazy Constants 与类初始化锁、holder idiom 和 Stable Values 的取舍 A Lazy Constants 依赖类初始化锁 B holder idiom 比 Lazy Constants 更简单 C Lazy Constants 是 Stable Values 的替代,两者无关 D Lazy Constants 在 JVM 层面支持惰性单次初始化,避免 holder idiom 的类初始化成本 ✓ 正确答案
# 16. HTTP/3 的 QUIC 握手、证书验证与企业代理不兼容时如何诊断 A HTTP/3 使用 TCP,不受代理影响 B HTTP/3 无证书验证 C 企业代理可能阻断 UDP 导致 QUIC 握手失败,诊断需区分网络层与协议层失败 ✓ 正确答案 D HTTP/3 无法回退到 HTTP/2
# 17. JDK 26 的 GC 演进(JEP 522,G1 降低同步开销) A JDK 26 将默认 GC 更换为分代 Shenandoah B JEP 522 改变了所有默认 GC 参数 C JEP 522 通过减少同步开销提升 G1 吞吐,G1 仍是默认 GC,对应用透明 ✓ 正确答案 D JEP 522 引入了新的默认 GC
# 18. JDK 26 的编译器优化(C2 改进) A C2 只优化 GC B C2 在 JDK 26 被移除 C C2 改进内联、向量化与逃逸分析,并与 AOT 缓存配合 ✓ 正确答案 D C2 无法向量化
# 19. JEP 500 Prepare to Make Final Mean Final 的语义变化 A JEP 500 立即禁止所有 final 字段修改 B JEP 500 与 final 无关 C JEP 500 允许反射修改 final 字段 D JEP 500 逐步限制绕过 final 的写入,JDK 26 先警告,未来禁止 ✓ 正确答案
# 20. JEP 517 HTTP/3 for the HTTP Client API 的协议升级 A HTTP/3 基于 TCP B HTTP/3 无法回退到 HTTP/2 C HTTP/3 与 HTTP/2 完全相同 D JEP 517 为 HttpClient 提供基于 QUIC(UDP)的 HTTP/3 支持 ✓ 正确答案
# 21. JEP 517 HTTP/3 客户端在连接迁移、0-RTT 与回退 HTTP/2 时的语义 A 连接迁移会中断现有连接 B HTTP/3 无法回退 C 0-RTT 永不失败 D 0-RTT 有重放风险,回退 HTTP/2 在 UDP 不可达时保证可用性 ✓ 正确答案
# 22. JEP 525 第六次预览结构化并发的 API 变化与预览依赖治理 A JEP 525 已转正 B JEP 525 第六次预览结构化并发,API 仍可能变化,需隔离预览依赖 ✓ 正确答案 C 第六次预览意味着 API 冻结 D 结构化并发无法预览
# 23. JDK 26 的 -Xlog 与 JFR 增强 A JDK 26 新增 HTTP/3、AOT 缓存、final 字段等日志与 JFR 事件 ✓ 正确答案 B JDK 26 移除了 JFR C -Xlog 无法新增标签 D JFR 事件无法扩展
# 24. JEP 524 PEM Encodings of Cryptographic Objects(2nd Preview,JDK 26)的 API 变化与安全编码场景 A JEP 524 在 JDK 26 已转正 B JEP 524 第二次预览 PEM 编码,改进 API 并支持安全编码场景 ✓ 正确答案 C PEM 编码只支持证书 D JEP 524 与 JEP 470 无关
# 25. JDK 26 的网络 API 改进 A JDK 26 的网络 API 移除了 HTTP/2 B JDK 26 的核心网络改进是 HTTP/3 支持及与虚拟线程的配合 ✓ 正确答案 C JDK 26 无法使用 UDP D JDK 26 的网络 API 无变化
# 26. JDK 26 预览特性编译、运行、测试与制品发布的 --enable-preview 管理 A 只需编译时指定 --enable-preview B 预览特性在发布后不再变化 C 编译与运行都要指定 --enable-preview,且运行版本需匹配 ✓ 正确答案 D 无需 --enable-preview 即可使用预览特性
# 27. JEP 485 Stream Gatherers(JDK 24 Final) A Stream Gatherers 只能用于串行流 B Stream Gatherers 只能操作 List C Stream Gatherers 是预览特性 D Stream Gatherers 允许自定义 Stream 中间操作,JDK 24 定稿后默认可用 ✓ 正确答案
# 28. JEP 517 为 JDK 26 HttpClient 增加 HTTP/3 时,HTTP/3-first、竞速连接、Alt-Svc 升级和仅 HTTP/3 URI 四种发现策略各有什么失败与回退语义?生产可观测性如何关联 QUIC 连接 ID 与连接迁移,并区分 UDP 被阻断、握手失败、0-RTT 被拒和回退 HTTP/2 造成的延迟 A HTTP/3-first 失败回退 HTTP/2,仅 HTTP/3 URI 失败直接报错 ✓ 正确答案 B 仅 HTTP/3 URI 在失败时会回退 HTTP/2 C Alt-Svc 升级不依赖 HTTP/2 通告 D 竞速连接只尝试 HTTP/3
# 29. JEP 526 Lazy Constants(2nd Preview,由 JEP 502 重命名) A JEP 526 是 JEP 502 的转正版 B JEP 526 将 Stable Values 重命名为 Lazy Constants,第二次预览 ✓ 正确答案 C JEP 526 与 JEP 502 无关 D Lazy Constants 每次访问都初始化
# 30. JEP 526 第二次预览 Lazy Constants 的初始化、失败重试与可见性保证 A 初始化失败后无法重试 B 结果只在单线程可见 C 初始化是惰性的,失败后后续访问会重试,结果对所有线程可见 ✓ 正确答案 D 每次访问都重新初始化
# 31. JEP 529 Vector API(11th Incubator) A JEP 529 在 JDK 26 已转正 B Vector API 无掩码操作 C Vector API 只能用于浮点 D JEP 529 第 11 次孵化 Vector API,支持 SIMD 运算并自动回退标量 ✓ 正确答案
# 32. JEP 504 Remove the Applet API 的清理 A JEP 504 在 JDK 26 移除 Applet API,对现代应用影响极小 ✓ 正确答案 B JDK 26 中 Applet 仍可正常使用 C Applet 仅在 JDK 9 弃用,从未移除 D Applet 在 JDK 26 转正
# 33. JEP 529 第十一次孵化 Vector API 的平台可移植性和标量回退 A Vector API 只在 x86 上可用 B 标量回退会导致编译错误 C 平台不支持向量指令时自动回退标量,保证正确性 ✓ 正确答案 D Vector API 无法跨平台
# 34. JEP 530 第四次预览原始类型模式在 instanceof 与 switch 中的穷尽性 A 原始类型模式不要求穷尽 B JEP 530 已转正 C 原始类型模式只用于 instanceof D JEP 530 第四次预览原始类型模式,switch 需穷尽覆盖模式 ✓ 正确答案
# 35. 从 JDK 25 升级到 26 时如何建立已删除、弃用和行为变化清单 A 只依赖编译错误 B 只检查 GC 参数 C 无需清单直接升级 D 查阅 Release Notes/JEP 列表,并用 jdeprscan/jdeps 扫描弃用与内部 API 使用 ✓ 正确答案
# 36. 从 JEP 472 对 JNI 受限方法的预警、JEP 498 对 sun.misc.Unsafe 内存访问的告警,到 JEP 500 在 JDK 26 警告深反射修改 final 字段,这条 integrity-by-default 路线分别影响 JNI、Unsafe、反射和序列化框架的哪些调用?如何借助 native-access、Unsafe/final-field 诊断选项和 JFR 事件盘点依赖,并迁移到 FFM、VarHandle 或构造器注入 A JEP 472/498/500 分别收紧 JNI、Unsafe、final 字段反射,可迁移到 FFM、VarHandle 或构造器注入 ✓ 正确答案 B 该路线鼓励使用 Unsafe 访问内存 C JNI 无法迁移到 FFM D 该路线不影响反射