站长点评:互联网发展了这么多年了,但是能够被证明的商业模式不外乎:广告,电商等少数几个。变与不变是世界发展的基本状态,变得东西有很多,但是不变的东西却不多,抓好不变的东西才能不迷失自我。希望大家坚守自己的核心,静观其变,酌情取之。

JDK 16 GA 新特征

3 月 16 日,OpenJDK 官网如期公布了 JDK 16 GA 版本。与 Java 15 一样,该版本的支持时间只有 6 个月。

GA 是指 General Availability,也就是官方开始推荐可以广泛使用的版本。

该版本一共进行了 17 项更新,涉及新特性改进、新工具、孵化功能等,具体有哪些更新,我们一起来看下:

  • Vector API

孵化器阶段的向量 API,其中 JDK 将安装一个孵化器模块,用于表示编译为支持的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能。

  • 启用 C++ 14 语言功能

允许在 JDK C++ 源代码中使用C++ 14功能,并提供有关部分功能可用于 HotSpot VM 代码的特定指导。

  • OpenJDK 源代码存储库从 Mercurial 迁移到 Git

推动这项工作是借助版本控制系统元数据和可用工具及托管方面的优势。

  • ZGC 并发线程堆栈处理

将ZGC线程堆栈处理从安全点移至并发阶段。

  • 增加 Unix 域套接字通道

其中 Unix 域 (AF_UNIX) 套接字支持添加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。该计划还扩展了继承的通道机制,以支持 Unix 域套接字通道和服务器套接字通道。Unix 域套接字用于同一主机上的进程间通信。它们在很多方面与 TCP/IP 套接字类似,只是它们由文件系统路径名称而不是 IP 地址和端口号寻址。新功能的目标是支持 Unix 域套接字通道的所有功能,这些功能在主要 Unix 平台和 Windows 中很常见。

  • 将 JDK 移植到 Alpine Linux 和其他使用 musl 作为主 C 库的 Linux 发行版

在 x64 和 AArch64 体系结构上,将JDK移植到 Alpine Linux 以及使用musl作为其主要C库的其他Linux发行版中。

  • 弹性元空间功能

它将可以更迅速地将未使用的 HotSpot VM 类元数据(元空间)内存返回到操作系统,减少元空间占用空间并简化元空间代码以降低维护成本。

  • 将 JDK 移植到 Windows/AArch64 平台

随着新的服务器级和使用者 AArch64 (ARM64) 硬件的发布,Windows/AArch64 已成为一个重要的平台。

  • 外部链接程序 API

提供静态类型、纯 Java 对本机代码的访问。此 API 将在 JDK 16 中处于孵化器阶段。

  • 对基于值的类进行警告

对在 Java 中错误进行基于值类实例的操作发出警告。

  • 包装工具

提供jpackage工具,用于打包独立的Java应用程序。

  • 外部存储器访问 API

引入一个允许Java程序安全有效地访问Java堆之外的外部内存 API。

  • instanceof 模式匹配

在 JDK 16 上,模式匹配允许程序中的通用逻辑,即从对象中提取组件,可以更简洁、更安全地表达.instanceof 运算符。

  • Records

为不可变的数据载体提供记录类。

  • 默认情况下,对 JDK 内部进行强封装

用户可以选择自 JDK 9 以来默认的宽松强封装。此建议的目标包括提高 JDK 的安全性和可维护性,作为项目 Jigsaw 的一部分,并鼓励开发人员从使用内部元素迁移到使用标准 API,以便开发人员和最终用户都可以轻松地更新到未来的 Java 版本。

  • 密封类

以前在 JDK 15 中预览的密封类和接口限制其他类和接口可以扩展或实现它们。该计划的目标包括,允许类或接口的作者控制负责实现它的代码,提供比访问修饰符更声明性的方式来限制超类的使用,以及通过提供模式分析的基础来支持模式匹配的未来方向。

参考:

https://openjdk.java.net/projects/jdk/16/

标签: none

添加新评论