《Java 编程入门》附录 C 21→25 版本差异
把 JDK 21 到 25 的正式特性与预览特性分开列清楚:21 的虚拟线程、记录模式、switch 模式匹配,22 的 FFM API 与未命名变量,23 的 Markdown 文档注释与分代 ZGC 默认,24 的 Class-File API 与 Stream Gatherers,25 的 Scoped Values、模块导入声明、紧凑源文件、灵活构造器与紧凑对象头,并给出迁移建议。
tag
把 JDK 21 到 25 的正式特性与预览特性分开列清楚:21 的虚拟线程、记录模式、switch 模式匹配,22 的 FFM API 与未命名变量,23 的 Markdown 文档注释与分代 ZGC 默认,24 的 Class-File API 与 Stream Gatherers,25 的 Scoped Values、模块导入声明、紧凑源文件、灵活构造器与紧凑对象头,并给出迁移建议。
从 Temurin 25.0.5 的安装包选择讲起,说明 PATH 与 JAVA_HOME 各自影响哪个环节,如何在 macOS、Linux、Windows 上验证 java 与 javac 指向同一个 JDK;再在 library 工程里写一个 EnvironmentProbe,把版本、java.home 与编码打印出来,避开多 JDK 环境最常见的错配。
把 Java 的发布节奏还原成一张可执行的选型表:六个月一个特性版本、两年一个 LTS,版本号每一段代表什么,JDK 21、25、27 各自适合谁;再给出用 --release 锁定目标版本、用 Maven Toolchains 固定构建 JDK、用 jdeps 检查依赖的落地做法。