JDK15已于今年9月15日发布,这是一个短期版本,只会受到Oracle6个月的支持。JDK16将作为标准Java版本的参考实现在年3月16日发布。与JDK15一样,JDK16也将是个短期版本,仅提供6个月的支持。预计于年9月发布的JDK17将是一个长期支持(LTS)版本,会获得数年的支持。目前的LTS版本JDK11则于年9月发布。
JDK16现在处于Early-Access(EA,早期访问)阶段,目前最新版本是Build26。
按InfoWorld所述,截至年11月30日,已有14个特性已被正式提了出来,还有2个特性则是预测性质。Java16即将推出的新功能或包括有:
之前在JDK15中预览过,密封类和接口限制了哪些其他类和接口可以继承或实现它们。该计划的目标包括:允许类或接口的作者控制负责实现它的代码,提供比访问修饰符更声明性的方式来限制超类的使用,并通过提供模式分析的基础来支持模式匹配的未来方向。
除了misc.Unsafe等关键的内部API外,默认情况下对JDK内部进行强封装。用户可以选择自JDK9以来默认的宽松的强封装。
外部链接程序API,提供对本地代码的静态类型的纯Java访问。该API将在JDK16中处于孵化阶段。
移动ZGC(Z垃圾收集器)线程堆栈处理从安全点到并发阶段。该计划的目标包括从ZGC安全点中删除线程堆栈处理。
弹性元空间能力,它可以将未使用的HotSpotVM类元数据(元空间)内存更迅速地返回给操作系统,从而减少元空间的占用空间并简化元空间代码,从而降低维护成本。
启用C++14语言功能,允许在JDKC++源代码中使用C++14功能。
孵化器阶段的矢量API,其中JDK将配备一个孵化器模块,jdk.incubator.vector,以表达可在支持的CPU架构上编译为最佳矢量硬件指令的矢量计算,以实现优于等效标量计算的性能。
将JDK移植到Windows/AArch64平台。
在x64和AArch64体系结构上,将JDK移植到AlpineLinux和其他使用musl作为其主要C库的Linux发行版。
提供记录类,作为不可更改数据的透明载体。
增加Unix域套接字通道,其中在nio.channels包中的套接字通道和服务器套接字通道API中增加了Unix域(AF_UNIX)套接字支持。
外部存储器访问API,允许Java程序安全地访问Java堆外部的外部存储器。
用于instanceof运算符的模式匹配,在JDK14和JDK15中进行了预览,将在JDK16中完成。
提供用于打包独立Java应用程序的jpackage工具。
OpenJDK源码从Mercurial迁移到Git,托管平台也迁移到GitHub。
详情可查看: