QUICKREF · JDK 25
速查模块:6 张 API 地图
写代码卡住时,从这里 30 秒找到正确写法;面试前,用它扫清版本边界。
使用方式每页都是「目标问题 → API 地图 → 最短示例 → 版本边界 → 费曼自检」。不需要从头读,按主题跳转。
CHEATSHEET · A4
JDK 25 一页速查卡4 个分区、12 张卡片,把 JDK 25 的正式/预览边界、并发新 API、语言与模块写法、运行时开关压到一张可打印的页面。先记「什么转正、什么仍预览、什么默认没变」。
12 张卡片 · 打开 / 打印 →
01
Scoped Values:作用域内的不可变上下文
ScopedValue 把上下文从「每个线程一份可变副本」变成「一段执行路径上的只读绑定」:进入作用域时安装,退出时恢复,子任务只在结构化 fork 时继承。JDK 25 转正,API 与 21 预览版有差异。
02
Structured Concurrency:第五次预览的新 API
JDK 25 的结构化并发仍是预览,但 API 已换成 open() + Joiner:作用域是接口,子任务默认跑在虚拟线程上,失败或超时会取消兄弟任务。21 的 ShutdownOnFailure / ShutdownOnSuccess 在 25 已不存在。
03
Compact Source Files:没有 class 外壳的程序
JDK 25 正式允许单文件程序省略 package 与 class 声明,直接写 import、字段、方法和实例 main。java Hello.java 即可运行;它降低的是入门与小工具的门槛,不是替代正规类结构。
04
Module Import Declarations:一行导入一个模块
import module java.base; 把 java.base 导出的所有包一次性导入,等价于几十条按需包导入。它解决的是 import 噪音,不是模块化:不改变 requires,不打开封装,也不能导入 classpath 上的未命名模块。
05
Flexible Constructor Bodies:把校验放到 super() 之前
JDK 25 正式允许在 super(...) / this(...) 之前写语句:可以先校验参数、计算参数、初始化本类字段,再调用父构造器。代价是这些语句处于「早期构造上下文」,不能读取正在构造的对象。
06
从 21 迁移到 25
21 → 25 的升级难点不在语法,而在「预览转正」与「默认值没变」:Scoped Values 与模块导入去掉预览参数,结构化并发换了 API 却仍是预览,紧凑对象头与分代 Shenandoah 转正但默认关闭,32 位 x86 端口被移除。
怎么用速查HOWTO
- 先看目标问题:每页开头三个问题,决定你要不要读细节。
- 再扫 API 表:知道方法名、参数与返回值,比背实现重要。
- 最后看边界:同一 API 在哪些版本是预览、哪些版本不存在,写进记忆。
- 切换版本:用侧栏或顶栏的版本选择器,落到目标版本的速查模块,再对照同名主题。
- 标记掌握度:页底按钮会记录到本机浏览器,课程首页显示总进度。