乐趣区

关于编辑器:JDK-16-即将发布新特性速览

你还能追上 Java 的更新速度吗?

当开发者深陷 Java 8 版本之际,这边下一版本 Java 16 有了最新的音讯,与 Java 15 一样,作为短期版本,Oracle 仅提供 6 个月的反对。

依据公布打算,JDK 16 将在 12 月 10 日和 2021 年 1 月 14 进入 Rampdown 阶段,2021 年 2 月 4 日到 2 月 18 日进入公布候选阶段。最终版本预计于 2021 年 3 月 16 日正式公布。

日前,JDK 16 揭晓了行将到来的新性能,接下来,咱们将一睹为快:

  • 以前在 JDK 15 中预览的密封类和接口限度其余类和接口能够扩大或实现它们。该打算的指标包含,容许类或接口的作者管制负责实现它的代码,提供比拜访修饰符更申明性的形式来限度超类的应用,以及通过提供模式分析的根底来反对模式匹配的将来方向。
  • 默认状况下,对 JDK 外部进行强封装,但要害外部 API(如 misc.Unsafe)除外。用户能够抉择自 JDK 9 以来默认的宽松强封装。此倡议的指标包含进步 JDK 的安全性和可维护性,作为我的项目 Jigsaw 的一部分,并激励开发人员从应用外部元素迁徙到应用规范 API,以便开发人员和最终用户都能够轻松地更新到将来的 Java 版本。
  • 内部链接程序 API,提供动态类型、纯 Java 对本机代码的拜访。此 API 将在 JDK 16 中处于孵化器阶段。
  • 将 ZGC(Z 垃圾收集器)线程堆栈解决从平安点挪动到并发阶段。此打算的指标包含从 ZGC 平安点中删除线程堆栈解决。
  • 弹性元空间性能,它将能够更迅速地将未应用的 HotSpot VM 类元数据(元空间)内存返回到操作系统,缩小元空间占用空间并简化元空间代码以升高保护老本。
  • 启用 C++ 14 语言性能,容许在 JDK C++ 源代码中应用 C ++ 14 性能,并提供无关局部性能可用于 HotSpot VM 代码的特定领导。
  • 孵化器阶段的向量 API,其中 JDK 将装置一个孵化器模块,用于示意编译为反对的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能。
  • 将 JDK 移植到 Windows/AArch64 平台。随着新的服务器级和使用者 AArch64(ARM64)硬件的公布,Windows/AArch64 已成为一个重要的平台。
  • 在 x64 和 AArch64 体系结构上,将 JDK 移植到 Alpine Linux 和其余应用 musl 作为主 C 库的 Linux 发行版。Musl 是 ISO C 和 Posix 规范中形容的规范库性能的 Linux 实现。因为云部署、微服务和容器环境,Alpine Linux 因为其映像大小较小,因而被宽泛采纳。
  • 为不可变数据提供充当通明载体的记录类。
  • 减少 Unix 域套接字通道,其中 Unix 域(AF_UNIX)套接字反对增加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。该打算还扩大了继承的通道机制,以反对 Unix 域套接字通道和服务器套接字通道。Unix 域套接字用于同一主机上的过程间通信。它们在很多方面与 TCP/IP 套接字相似,只是它们由文件系统门路名称而不是 IP 地址和端口号寻址。新性能的指标是反对 Unix 域套接字通道的所有性能,这些性能在次要 Unix 平台和 Windows 中很常见。
  • 一种内部存储器拜访 API,容许 Java 程序平安地拜访 Java 堆以外的内部存储器。这一性能将在 JDK 16 中从新孵化。优化的指标包含提供单个 API 以对各种内部存储器(包含本机、长久和托管堆内存)进行操作,API 不应毁坏 JVM 的安全性。此外,许多 Java 程序应拜访内部存储器,如 Lgnite、Memcached 和 MapDB。然而 JavaAPI 不能提供令人满意的拜访内部内存 .MemorySegmentMemoryAddresses 的解决方案。
  • 用于运算符的模式匹配(该性能也在 JDK 14/15 版本中实现了预览)。在 JDK 16 上,模式匹配容许程序中的通用逻辑,即从对象中提取组件,能够更简洁、更平安地表白.instanceof 运算符
  • 提供用于打包独立的 Java 应用程序 jpackage 工具。最后作为 JDK 14 中的孵化工具,jpackage 在 JDK 15 中依然处于孵化期。预计到 JDK 16 版本,jpackage 将会进入生产环境中,反对本地包格局,并为用户提供晦涩的装置体验,以及容许在打包时指定启动工夫参数。格局包含 Windows 上的 msi 和 exe、MacOs 上的 pkg 和 dmg、以及 Linux 上的 deb 和 rpm。该工具能够间接从命令行调用,也能够以编程形式调用。新的打包工具解决了许多 Java 应用程序须要以一流的形式装置在本机平台上,而不是搁置在类门路或模块门路上等问题。
  • OpenJDK 源代码存储库从 Mercurial 迁徙到 Git。推动这项工作是借助版本控制系统元数据和可用工具及托管方面的劣势。
  • 借助 JEP 369,托管平台迁徙到 GitHub。在往年 9 月 5 日,Mercurial JDK 和 JDK 沙盒向 Git、GitHub 和 Skara 的过渡工作已实现。

继 Java 16 之后,Java 17 将于 2021 年 9 月公布,这是长期反对(LTS)版本,因而身处研发火线的开发者能够再等等。对此,你期待新版 Java 的到来吗?

参考链接:https://www.infoworld.com/art…

退出移动版