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
的建议,我个人认为没有必要升级,研究一下倒是可以的。不知道同学们有什么看法,可以留言讨论
原文
https://segmentfault.com/a/1190000022053352