400-090-9964


博客 | 论坛

行业动态

甲骨文宣布Java 16(Oracle JDK 16)

时间:2021-03-22 来源:

甲骨文宣布Java 16

德克萨斯州奥斯汀-2021年3月16日

今天,Oracle宣布了Java 16(Oracle JDK 16)的可用性,其中包括对该平台的17项新增强功能,它们将进一步提高开发人员的生产力。最新的Java开发工具包(JDK)最终确定了instanceof(JEP 394)和Records(JEP 395)的模式匹配,这是Java 14中首次预览的语言增强功能。此外,开发人员可以使用新的Packaging Tool(JEP 392)进行自我包装。包含Java的应用程序,并探索三种孵化功能,即Vector API(JEP 338),Foreign Linker API(JEP 389)和Foreign-Memory Access API(JEP 389),以及一种预览功能,Sealed Classs( JEP 397)。

Oracle每六个月提供一次Java更新,以为开发人员提供可预测的发布时间表。这提供了稳定的创新流,同时还提供了持续的性能,稳定性和安全性改进,从而提高了Java在各种规模的组织和行业中的普遍性。

甲骨文Java平台事业部开发副总裁Georges Saab表示:“最新发布的六个月发布节奏的力量已得到充分展示。” “模式匹配和记录是一年前作为JDK 14的一部分引入的,此后经过了基于实际应用程序的多轮社区反馈。这个过程不仅为Java开发人员提供了在最终确定这些功能之前进行试验的机会,而且还吸收了关键的反馈意见,从而产生了两个坚如磐石的JEP,它们真正满足了社区的需求。”

Java 16发行版是整个行业发展的结果,涉及开放审查,每周构建以及Oracle工程师与全球Java开发人员社区成员之间通过OpenJDK社区和Java社区流程进行的广泛协作。Java 16中提供的新功能包括:

语言增强功能首次在JDK 14中引入,在JDK 16中完成

JEP 394:instanceof的模式匹配–通过为instanceof运算符进行模式匹配来增强Java编程语言。

JEP 395:记录–通过记录增强Java编程语言,记录是充当不变数据透明载体的类。记录可以被视为名义元组。

提高开发人员生产力的新工具

JEP 392:打包工具–提供jpackage工具,用于打包自包含的Java应用程序。

改进的内存管理以提高性能

JEP 387:弹性元空间–更快地将未使用的HotSpot类元数据(即,元空间)内存返回给操作系统,减少元空间的占用空间,并简化元空间代码,以降低维护成本。

JEP 376:ZGC:并行线程堆栈处理–将ZGC线程堆栈处理从安全点移至并发阶段。这项工作消除了允许并发堆栈处理的最后一个显着瓶颈。

改进的网络以提高开发人员的生产力和灵活性

JEP 380:UNIX域套接字通道–将对主要UNIX平台和Windows通用的UNIX域套接字的所有功能的支持添加到java.nio.channels包中的套接字通道和服务器套接字通道API。UNIX域套接字用于同一主机上的进程间通信(IPC)。它们在大多数方面与TCP / IP套接字类似,不同之处在于它们是通过文件系统路径名而不是Internet协议(IP)地址和端口号来寻址的。

解决未来不兼容的代码

JEP 396:默认情况下强烈封装JDK内部–在JDK 9中,我们强烈封装了新的内部API元素,从而限制了对它们的访问。但是,作为迁移的辅助手段,JDK 9故意选择在运行时不强烈封装JDK 8中存在的软件包的内容。JDK16通过默认封装JDK的大多数内部元素(关键内部API除外)来加强此约束。例如sun.misc.Unsafe。最终用户仍然可以选择自JDK 9以来默认使用的宽松的强封装。这将鼓励开发人员从使用内部元素迁移到使用标准API,以便他们和他们的用户都可以毫不费力地升级到将来的Java版本。

JEP 390:基于值的类的警告–将原始包装器类指定为基于值的类,并弃用其构造函数以进行删除,从而提示新的弃用警告。提供有关在Java平台中不正确尝试在任何基于值的类的实例上进行同步的警告。

孵化和预览功能

JEP 338:矢量API(孵化器) –提供孵化器模块jdk.incubator.vector的初始迭代,以表达可在运行时可靠地编译为支持的CPU架构上的最佳矢量硬件指令的矢量计算。

JEP 389:外部链接程序API(孵化器) –引入了API,该API提供了对本地代码的静态类型的纯Java访问。

JEP 393:外部存储器访问API(第三孵化器) –引入了API,以允许Java程序安全有效地访问Java堆之外的外部存储器。

JEP 397:密封类(第二预览) –通过密封类和接口增强了Java编程语言。密封的类和接口限制可以扩展或实现它们的其他类或接口。

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存储库。

新端口在更多平台上提供对Java的支持

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

JEP 388:Windows / Aarch64端口–将JDK移植到Windows / AArch64。

不断使Java变得更好

基于不断的创新,Java仍然是最成功的开发平台之一,可以满足现代应用程序开发人员不断发展的需求。为了使Oracle Java SE订阅对客户更具价值,Oracle添加了GraalVM Enterprise作为应享权利。GraalVM可以帮助提高应用程序的性能并减少资源消耗,尤其是在微服务和云原生架构中。通过利用Oracle Java SE订阅来管理Java资产的组织不仅受益于Oracle的最新增强功能和对Java专家的直接访问,而且与其他方法相比可节省大量成本。

“不再以每三到四年的时间对Java的新事物产生兴趣,这种节奏使我成为一名充满激情的开发人员,老师和培训师,这很活跃,”巴黎索邦大学的助理教授JoséPaumard说道。 Group。“我迫切希望使用Records来提高数据处理代码的性能和可读性,并且能够将其用作预览功能之后,现在可以在此最新版本中使用它。”

开发人员可以了解有关Java 16的更多信息,并在3月23日,25日和30日的Oracle Developer Live:Java创新上获得动手经验。

版权所有@北京优技教育技术有限公司(CUUG,中国UNIX用户协会) Copyright 2017 ALL Rights Reserved 京ICP备11008061号-1

CUUG旗下网站:www.cuug.com.cn www.cuug.com oracle.cuug.com bbs.cuug.com bd.cuug.com

电话:010-59426307 010-59426319 邮政编码:100089

海淀校区:北京市海淀区紫竹院路88号紫竹花园4号楼D座703(CUUG)