选长期支持版(LTS)是绝大多数团队的理性选择,Oracle 每两年发布一个 LTS 版本(如 JDK 17、21),支持期 8 年;非 LTS 版本仅支持 6 个月。
别追最新版 JDK,选长期支持版(LTS)是绝大多数团队的理性选择。
LTS 版本由 Oracle 官方明确定义,每两年发布一个,支持期长达 8 年(Oracle JDK 商用需订阅;OpenJDK 社区版如 Eclipse Temurin、Amazon Corretto 等提供免费 LTS 支持)。非 LTS 版本(如 JDK 17 之后的 18、19、20)仅提供 6 个月支持,到期即停止更新安全补丁。
JDK Releases 页面会明确标注 LTS 字样,别只看数字大小java -version 查看本地版本后,去对应发行版官网查支持周期,比如 temurin.net 或 corretto.aws
升级不是改个 JAVA_HOME 就完事。真正卡点常在底层依赖和构建工具链上:
IncompatibleClassChangeError
maven-compiler-plugin 需显式设 source 和 target 为 21,否则默认仍按旧规则编译javax.xml.bind 或模块化限制直接抛 NoClassDefFoundError
openjdk:17-jre-slim)必须同步更新,否则构建环境与运行环境不一致对多数业务系统,JDK 21 的收益集中

Virtual Threads(java.lang.Thread.ofVirtual())适合高并发 I/O 密集型服务,但需重构线程模型,不是开箱即用Pattern Matching for switch 是语法糖,写法更简洁,但不升级也能用老写法,无强制迁移动力真正容易被忽略的是:JDK 升级决策不该由开发拍板,而要拉上运维、测试、安全团队一起核对 SLA、漏洞响应时效、监控埋点兼容性。一次升级背后是整条交付链路的协同成本。