SegmentFault思否 · 2021年03月26日

Java 16 发布:包括 17 项新功能,使编程语言对云更友好

image.png

今日凌晨,Java 开发工具包(JDK)16 正式发布,包含了平台功能的 17 项迭代,将进一步帮助开发者提升工作效率。

17 项功能迭代,使编程语言对云更友好

JDK 16 将是一个短期支持版本,它将在 9 月的 Java 17 长期支持(LTS)版本之后淘汰,但是它附带了很长的增强和升级列表,本次更新涉及到 17 个功能的迭代 ——

其中两个新功能旨在通过解决内存管理来提高性能:

  • JEP 387:Elastic Metaspace 可以更快地将未使用的 HotSpot 类元数据内存返回给操作系统,减少元空间的占用空间,并简化元空间代码以降低维护成本。
  • JEP 376: ZGC:并发线程栈处理将 ZGC 线程栈处理从安全点移至并发阶段,以消除允许并发栈处理的重大瓶颈。

JEP 392:是一种打包工具,用于打包自包含的 Java应用程序并提高开发人员的生产率。

四个 JEP 处于孵化器或预览阶段:

  • JEP 338:Vector API(孵化器)提供了孵化器模块jdk.incubator.vector的初始迭代,以表达向量计算,该向量计算在运行时可靠地编译为支持的CPU架构上的最佳向量硬件指令。
  • JEP 389:外部链接程序 API(孵化器)引入了一种 API,该 API 提供了对本地代码的静态类型的纯 Java 访问。
  • JEP 393:外部存储器访问API(第三孵化器)引入了一种 API,以允许 Java 程序安全有效地访问 Java 堆外部的外部存储器。
  • JEP 397:密封类(第二预览)通过密封类和接口增强了 Java 编程语言。

这三个 JEP 代表对 OpenJDK 贡献者的改进:

  • JEP 347:启用 C ++ 14 语言功能(在 JDK 源代码中)允许在 JDK C ++ 源代码中使用 C ++ 14 语言功能,并提供有关可以在 HotSpot 代码中使用的功能的指南。
  • JEP 357:从 Mercurial 迁移到 Git 会将 OpenJDK 社区的源代码存储库从 Mercurial(hg)迁移到 Git。
  • JEP 369:迁移到 GitHub 并在 GitHub 上托管 OpenJDK 社区的 Git 存储库。

两个 JEP 创建了新端口,以在更多平台上提供对 Java 的支持:

  • JEP 386:Alpine Linux 端口将 JDK 移植到 Alpine Linux 以及其他使用 musl 作为 x64 和 AArch64 体系结构上的主要 C 库的 Linux 发行版。
  • JEP 388:Windows / AArch64 端口将 JDK 移植到 Windows / AArch64。

其他新功能包括:

  • JEP 380:UNIX 域套接字通道在 java.nio.channels 包中的套接字通道和服务器套接字通道 API 中增加了对主要 UNIX 平台和 Windows 通用的 UNIX 域套接字的所有功能的支持。
  • JEP 396:默认情况下,强封装 JDK Internals 通过默认封装 JDK 的大多数内部元素(除了诸如 sun.misc.Unsafe 之类的关键内部 API)来加强对新内部 API 元素的约束。
  • JEP 390:基于值的类的警告将原始包装器类指定为基于值的,并弃用其构造函数以进行删除,从而提示新的弃用警告。它还提供有关在 Java 平台中不正确尝试在任何基于值的类的实例上进行同步的警告。
  • JEP 394:instanceof 的模式匹配。此功能的目标是增强 instanceof 运算符上的模式匹配功能。根据 OpenJDK 团队的说法,模式匹配允许简洁,安全地表达通用逻辑。
  • JEP 395:Records 是可以充当“不变数据的透明载体”的类,OpenJDK 团队解释说。它们有助于对数据聚合进行建模。

新版本已进行多轮社区反馈,新功能建立在 Java 的基本优势上

Oracle JDK 16 使 Java 开发人员可以更轻松地将编程语言与 API,微服务和其他云技术一起使用。此版本使记录和模式匹配脱离预览。据 Oracle 称,此版本中的这两个 JDK 增强建议和其他15个 JEP 提高了开发人员的生产力和应用程序性能。

甲骨文 Java 开发者关系副总裁 Chad Arimura 表示,这些新功能建立在 Java 的基本优势(易用性,可靠性,安全性和平台独立性)的基础上,同时使该语言更易于在云部署中使用。

甲骨文 Java 研发副总裁 Georges Saab 称,“模式匹配和记录在一年前作为 JDK 14 的一部分被引入,此后又经历了多轮基于实际应用的社区反馈。这个过程不仅让 Java 开发者有机会在这些功能最终确定之前进行实验,而且还融入了这些关键性的反馈意见。”

Java 16 版本是全行业开发的结果,涉及公开审查、每周构建以及甲骨文工程师和全球Java 社区开发者的广泛合作。

Arimura 表示,相对较新的每年两次的发布时间表对于 Java 作为一个生态系统和平台来说是一件好事。他说:“当软件需要花费数年的时间才能发布时,旧的方法就可以正常工作,但是如今,它变得更加敏捷,而 Java 必须与敏捷交付相匹配。”

Arimura 介绍到,新版本比该语言的早期迭代要小,但是对于那些为代码成功做出贡献的供应商和个人来说,更容易支持新版本。 他还说:“将新版本引入部署管道更容易。” “我们正在走向一个容易说'我可以依靠 Java 的下一版本'的世界。”

参考链接:
https://www.oracle.com/news/a...

扩展阅读:
Super SloMo:用神经网络脑补超级慢动作

image.png

推荐阅读
关注数
4189
内容数
867
SegmentFault 思否旗下人工智能领域产业媒体,专注技术与产业,一起探索人工智能。
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息