1. 前言
前几天刚刚介绍了一个Java14很有用的预览特性 Java 14 新特性之 JEP 359: Records(Preview)。Java 14 就在 17 日发布了正式版本。大部分人还在用着 Java 8 , 真是尾气都吃不到了。不过好歹不是LTS版本,大家不要慌。
2. Java14 新特性
此版本包含的 JEP(Java/JDK Enhancement Proposals,JDK 增强提案)比 Java 12 和 Java13 加起来都多。总共 16 个新特性。我这里简要罗列一下:
-
305: instanceof 的模式匹配 (预览) -
343: 打包工具 (Incubator) -
345: G1 的 NUMA 内存分配优化 -
349: JFR 事件流 -
352: 非原子性的字节缓冲区映射 -
358: 友好的空指针异常 -
359: Records (预览) -
361: Switch 表达式 (标准) -
362: 弃用 Solaris 和 SPARC 端口 -
363: 移除 CMS(Concurrent Mark Sweep)垃圾收集器 -
364: macOS 系统上的 ZGC -
365: Windows 系统上的 ZGC -
366: 弃用 ParallelScavenge + SerialOld GC 组合 -
367: 移除 Pack200 Tools 和 API -
368: 文本块 (第二个预览版) -
370: 外部存储器 API (Incubator)
详细可以去官方文档查看。但是我个人认为有可用的新特性并不是很多,还是那句话大家不要慌。
3. 我们该如何选择 JDK 版本
其实还有很多同学不了解,自从JDK 修改了发布策略以后加快了迭代速度,每年的 3 月、9 月各会发布一个新的GA版本。大家都知道迁移成本很高。所以我们应该知道如何去选择JDK版本。这里我总结了几点:
-
处于商业成本和软件协议考虑,尽量使用 OpenJDK ,市面上有很多优秀的 OpenJDK,我们就在使用 AWS 的 Corretto。 -
尽量使用 LTS 版本,其实不光是 JDK 所有的软件都尽量使用长期支持版本。 -
尽量不要去盲目升级老项目的 JDK,除非你有充分的时间和精力去折腾。
4.总结
今天简单介绍了Java14的发布情况,也提供了一些升级JDK的建议,我个人认为没有必要升级,研究一下倒是可以的。不知道同学们有什么看法,可以留言讨论