Java14 它真的来了

6,592 阅读2分钟

1. 前言

前几天刚刚介绍了一个Java14很有用的预览特性 Java 14 新特性之 JEP 359: Records(Preview)。Java 14 就在 17 日发布了正式版本。大部分人还在用着 Java 8 , 真是尾气都吃不到了。不过好歹不是LTS版本,大家不要慌。

2. Java14 新特性

此版本包含的 JEP(Java/JDK Enhancement Proposals,JDK 增强提案)比 Java 12Java13 加起来都多。总共 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的建议,我个人认为没有必要升级,研究一下倒是可以的。不知道同学们有什么看法,可以留言讨论