JDK 17 · 2021-09-14 · LTS
JDK 17 LTS:现代 Java 的稳定基线
Java 17 是继 11 之后的 LTS:sealed class 转正、switch 模式匹配预览、强封装 JDK 内部,移除 RMI Activation 与实验性 AOT/JIT。
14官方 JEP 数
3正式特性
1预览 / 孵化
3移除 / 弃用
代表特性HIGHLIGHTS
这些是这一版最值得记住的变化。状态标签区分「正式 / 预览 / 孵化 / 移除」——预览不等于稳定,迁移时要特别确认。
全部 JEP14
数据来自 OpenJDK 官方 Features 表。中文名称仅为主要特性的人工标注。
| JEP | 标题 | 状态 | 来源 |
|---|---|---|---|
| JEP 306 | Restore Always-Strict Floating-Point Semantics | — | 官方 → |
| JEP 356 | Enhanced Pseudo-Random Number Generators 增强型伪随机数生成器 | 正式 | 官方 → |
| JEP 382 | New macOS Rendering Pipeline | — | 官方 → |
| JEP 391 | macOS/AArch64 Port | — | 官方 → |
| JEP 398 | Deprecate the Applet API for Removal | — | 官方 → |
| JEP 403 | Strongly Encapsulate JDK Internals 强封装 JDK 内部 | 正式 | 官方 → |
| JEP 406 | Pattern Matching for switch (Preview) Switch 模式匹配(预览) | 预览 | 官方 → |
| JEP 407 | Remove RMI Activation 移除 RMI Activation | 移除 | 官方 → |
| JEP 409 | Sealed Classes Sealed Classes 转正 | 正式 | 官方 → |
| JEP 410 | Remove the Experimental AOT and JIT Compiler | — | 官方 → |
| JEP 411 | Deprecate the Security Manager for Removal 弃用 Security Manager | 弃用 | 官方 → |
| JEP 412 | Foreign Function & Memory API (Incubator) | — | 官方 → |
| JEP 414 | Vector API (Second Incubator) | — | 官方 → |
| JEP 415 | Context-Specific Deserialization Filters | — | 官方 → |
移除与弃用REMOVED
升级前先排查这些变化。移除项通常不会在编译期全部报错,运行时或工具链上才暴露。
- RMI Activation(JEP 407)
- 实验性 AOT/JIT 编译器(JEP 410)
- Security Manager 被弃用
这一版的故事STORY
Java 17 是很多团队从 8/11 迁移的落点:sealed 提供了受控继承,强封装划清了 JDK 内部边界,switch 模式匹配则预告了 21 的语言形态。
怎么用这一页:先读故事建立坐标,再扫一遍代表特性。如果你正在用这个版本,重点看「移除与弃用」;如果你在选型或面试,重点记住 2–3 个代表特性及其版本边界。