JDK 25 新特性

共 21 题
#

1. JDK 25 与 Spring Boot 4.1.0 的兼容性(Java 17+ 基线)

A Spring Boot 4.1.0 只支持 JDK 25,不再支持 JDK 17
B Spring Boot 4.x 的 Java 基线为 17,编译为 Java 17 字节码,可在 JDK 25 上运行 ✓ 正确答案
C JDK 25 不是 LTS,Spring Boot 4.1.0 不保证支持
D Spring Boot 4.1.0 必须使用 Java 25 字节码才能运行
#

2. JEP 451 在 JDK 21 为动态加载 Agent 增加警告后,Byte Buddy、Mockito inline mock 和 APM Agent 的自附加为什么会触发告警

A 该警告表示动态加载 Agent 已彻底被禁止
B 使用 -javaagent 在启动时加载 Agent 也会触发该警告
C 该警告是提示,可通过 -XX:+EnableDynamicAgentLoading 显式启用动态加载 ✓ 正确答案
D 警告仅在 JDK 8 及以下版本出现
#

3. JDK 25 与 GraalVM 25+ 的对齐

A GraalVM 版本号与 Oracle JDK 完全无关
B GraalVM 与 JDK 从不同步发布
C GraalVM 25 只支持老版本 JDK
D GraalVM 25 版本号与 JDK 25 对应,基于 JDK 25 发行 ✓ 正确答案
#

4. JDK 25 与虚拟线程生态(Loom/JFR)协作

A 虚拟线程在 JDK 25 仍是实验特性
B JFR 提供 VirtualThreadPinned 等事件用于诊断虚拟线程钉住 ✓ 正确答案
C 虚拟线程无法与 JFR 配合
D 结构化并发在 JDK 25 仍不可用
#

5. JDK 25 的 Thread.sleep 精度改进

A 让所有 sleep 都使用 OS 定时器
B 完全移除 Thread.sleep 的精度保证
C 对极短睡眠使用忙等待以提高精度 ✓ 正确答案
D 只改善平台线程的睡眠精度
#

6. JEP 439 在 JDK 21 引入分代 ZGC、JEP 474 在 JDK 23 将分代模式设为默认、JEP 490 在 JDK 24 移除非分代模式,这三步分别改变了哪些启动参数、堆行为和回退能力

A JEP 490 在 JDK 24 移除了非分代 ZGC,分代成为唯一模式 ✓ 正确答案
B JEP 439 在 JDK 21 就默认启用分代 ZGC
C JEP 474 在 JDK 23 移除了分代 ZGC
D 分代 ZGC 的开关参数一直是 -XX:+UseZGenerational
#

7. JEP 514 的 -XX:AOTCacheOutput 一步式训练与传统 record/create 两阶段流程有何资源和可重复性差异,为什么一步式流程需要为子进程预留额外堆?JEP 515 把方法执行画像写入 AOT 缓存后,如何选择代表性训练流量、识别画像偏斜或缓存失效,并证明收益来自更早优化而非普通 CDS

A 一步式训练不需要额外内存
B 一步式流程需为子进程预留额外堆,因为 AOT 编译在子进程中进行 ✓ 正确答案
C AOT 缓存使 JIT 在运行时完全失效
D CDS 与 AOT 缓存无法同时启用
#

8. JDK 24 通过 JEP 496 提供 ML-KEM、通过 JEP 497 提供 ML-DSA 后,两者在密钥用途、密文或签名尺寸、性能和失败语义上有何不同

A ML-KEM 用于数字签名,ML-DSA 用于密钥封装
B 两者都是对称加密算法
C 两者功能完全相同
D ML-KEM 用于密钥封装,ML-DSA 用于数字签名 ✓ 正确答案
#

9. JEP 452 的 KEM API 只负责封装或解封装共享秘密时,如何再用 JEP 510 的 KDF API 派生具有用途隔离的 AEAD 密钥

A KDF 通过上下文标签实现用途隔离,从共享秘密派生多个 AEAD 密钥 ✓ 正确答案
B KEM 直接输出加密密钥,不需要 KDF
C KDF 用于封装共享秘密
D KEM 与 KDF 完全不相关
#

10. JEP 467 在 JDK 23 将 Markdown Documentation Comments 定稿后,/// 注释与传统 /** ... */ 在段落、代码块、链接和内联 Javadoc 标签解析上有何差异?迁移大型 API 文档时如何用 javadoc -Xdoclint 防止链接或示例静默失效

A Markdown 注释完全取代了 Javadoc 标签
B Markdown 注释使用 /** ... */ 前缀
C javadoc -Xdoclint 可检查文档注释中的链接与标签错误 ✓ 正确答案
D Markdown 注释不支持代码块
#

11. JEP 486 Permanently Disable the Security Manager(JDK 24 Final)

A JDK 24 中 SecurityManager 仍可正常使用
B JDK 24 中调用 SecurityManager 相关 API 会抛 UnsupportedOperationException ✓ 正确答案
C JDK 24 只是弃用 SecurityManager,并未禁用
D JEP 486 在 JDK 17 就已生效
#

12. JDK 25 的 -Xlog 日志增强

A -Xlog 是 JDK 25 才引入的
B -Xlog 无法记录 GC 日志
C -Xlog 只能输出到控制台
D -Xlog 支持按标签过滤输出,JDK 25 新增 AOT 等日志标签 ✓ 正确答案
#

13. JDK 25 的 HotSpot 性能改进(JEP 521 等)

A JEP 521 将分代 Shenandoah 设为默认模式,改善大堆场景的吞吐与暂停 ✓ 正确答案
B JEP 521 只改进 ZGC
C JEP 521 移除了 JIT 编译器
D JEP 521 与 GC 无关
#

14. JDK 25 的 Javadoc 与 API 文档演进

A JDK 25 移除了 Markdown 文档注释
B JDK 25 改进 Javadoc 的搜索、导航与 Markdown 支持 ✓ 正确答案
C Javadoc 无法渲染 Markdown 代码块
D JDK 25 的 Javadoc 不再支持 {@link} 标签
#

15. JDK 25 的工具链(jpackage/jlink)改进

A jlink 无法配合 CDS 缓存
B jlink 与 jpackage 功能相同
C jpackage 只能打包桌面应用
D jlink 支持在链接时生成 CDS/AOT 缓存以加速启动 ✓ 正确答案
#

16. JEP 443 的 Unnamed Patterns and Variables 在 JDK 21 仍是预览、到 JEP 456 才于 JDK 22 转正,这一生命周期对 _ 的作用域和模式匹配代码有何影响?JEP 430 String Templates 经两轮预览后被撤回重做,插值处理器的组合性与安全边界为何使它长期未能转正,团队应如何隔离预览语法依赖

A _ 变量会占用作用域并绑定值
B String Templates 在 JDK 22 已经转正
C 预览特性转正后仍需 --enable-preview
D _ 未命名变量在 JDK 22 转正,不可再作为普通标识符 ✓ 正确答案
#

17. JEP 470 PEM Encodings of Cryptographic Objects(Preview)

A JEP 470 提供统一的 PEM 编码/解码 API,在 JDK 25 为预览特性 ✓ 正确答案
B JEP 470 在 JDK 25 已转正
C PEM 编码只支持私钥
D JEP 470 与密码学无关
#

18. JEP 502 Stable Values(Preview)

A Stable Values 允许延迟初始化且只初始化一次,在 JDK 25 为预览 ✓ 正确答案
B Stable Values 是 final 字段,必须在构造时赋值
C Stable Values 每次访问都重新计算
D Stable Values 会触发类初始化锁
#

19. JEP 506 Scoped Values(Final)的应用模式

A Scoped Values 可变且可被任意线程继承
B Scoped Values 通过 ScopedValue.where(...).run(...) 绑定,作用域内不可变共享 ✓ 正确答案
C Scoped Values 是 ThreadLocal 的别名
D Scoped Values 在 JDK 25 仍是预览
#

20. JEP 508 Vector API(10th Incubator)

A Vector API 在 JDK 25 已转正并默认可用
B Vector API 只能用于整数运算
C Vector API 表达 SIMD 向量运算,由 C2 生成向量指令 ✓ 正确答案
D Vector API 与平台无关,无需回退
#

21. JEP 509 JFR CPU-Time Profiling(Experimental)

A 它是基于 wall-clock 的采样剖析
B 它在 JDK 25 已转正
C 它通过 JFR 记录线程 CPU 时间,更准确反映计算热点 ✓ 正确答案
D 它只能用于单线程