Java SE Development Kit(JDK) 16.0.2 官方正式版 Win64

JDK/Java16即将GA。JDK/Java16总共包含17个JEP,涉及到新语言特点、改进JVM、新工具和库、对未来功能的验证、孵化和预览阶段的功能以及提高生产效率这几大方面。JDK/Java16的亮点包括孵化阶段的VectorAPI、密封类和插口、将JDK移植到Windows/AArch64平台、启用C++14语言特点,以及将ZGC线程堆栈处理从安全点联通到并发阶段等。最新的Java开发工具包(JDK)最终完成了instanceof(JEP394)和Records(JEP395)的模式匹配,这是Java14中首次预览的语言提高功能。据悉,开发人员可以使用新的PackagingTool(JEP392)进行自我包装。包含Java的应用程序,并探求三种孵化功能,即VectorAPI(JEP338),ForeignLinkerAPI(JEP389)和Foreign-MemoryAccessAPI(JEP389),以及一种预览功能,SealedClasss(JEP397)。欢迎须要此款工具的同学前来下载使用。

本次为你们提供的是JavaSEDevelopmentKit16.0版本的下载地址,按照发布规划,JDK/Java16属于短期维护版本,仅有6个月的技术支持。下一个版本——计划9月发布的JDK/Java17(21.9LTS)才是常年支持版本。

基本介绍

JDK16是JavaSE平台版本16的开源参考实现,由Java社区流程中的JSR390指定。

JDK16于2021年3月16日即将上市。Oracle提供了GPL下可用于生产的二补码文件。其他供应商的二补码文件也将很快发布。

该版本的功能和时间表是通过JEP流程(由JEP2.0议案修订)提出并跟踪的。该发行版是使用JDK发行流程(JEP3)制做的。

特点

338:VectorAPI(Incubator)

347:EnableC++14LanguageFeatures

357:MigratefromMercurialtoGit

369:MigratetoGitHub

376:ZGC:ConcurrentThread-StackProcessing

380:Unix-DomainSocketChannels

386:AlpineLinuxPort

387:ElasticMetaspace

388:Windows/AArch64Port

389:ForeignLinkerAPI(Incubator)

390:WarningsforValue-BasedClasses

392:PackagingTool

393:Foreign-MemoryAccessAPI(ThirdIncubator)

JDK/Java 16 新特性 JEP 详解_linux jre16下载_JDK 16 版本发布内容介绍

394:PatternMatchingforinstanceof

395:Records

396:StronglyEncapsulateJDKInternalsbyDefault

397:SealedClasses(SecondPreview)

功能特点

VectorAPI(Incubator)

处于孵化阶段的VectorAPI,其中JDK将配备一个孵化器模块jdk.incubator.vector,用于抒发可在支持的CPU构架上编译为最佳矢量硬件指令的矢量估算,以实现优于等效标量估算的性能。

EnableC++14LanguageFeatures

启用C++14语言特点,支持在JDKC++源代码中使用C++14语言特点。

MigratefromMercurialtoGit

OpenJDK源代码库从Mercurial迁移到Git。

MigratetoGitHub

OpenJDK源代码库迁移到GitHub,此变化是基于OpenJDK源代码库从Mercurial迁移到Git。

ZGC:ConcurrentThread-StackProcessing

将ZGC线程堆栈处理从安全点联通到并发阶段。此计划的目标包括从ZGC安全点中删掉线程堆栈处理。

Unix-DomainSocketChannels

为java.nio.channels包中的socketchannel和server-socketchannelAPI添加Unix-domain(AF_UNIX)支持。

AlpineLinuxPort

针对x64以及AArch64构架,将JDK移植到AlpineLinux以及其他使用musl作为主要C语言库的Linux发行版上。

ElasticMetaspace

弹性元空间(ElasticMetaspace)能力,它可以将未使用的HotSpotVM类元数据(元空间)显存更迅速地返回给操作系统,因而减少元空间的占用空间并简化元空间代码,以及减少维护成本。

linux jre16下载_JDK/Java 16 新特性 JEP 详解_JDK 16 版本发布内容介绍

Windows/AArch64Port

将JDK移植到Windows/AArch64平台。

ForeignLinkerAPI(Incubator)

处于孵化阶段的ForeignLinkerAPI(外部链接器API),该API用于对本地代码进行静态类型访问。

WarningsforValue-BasedClasses

对基于值的类(Value-BasedClasses)进行警告。在Java平台中对于任何基于值的类实例进行同步的错误尝试,会给以警告。

PackagingTool

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

Foreign-MemoryAccessAPI(ThirdIncubator)

处于孵化器第三阶段的Foreign-MemoryAccessAPI,该API容许Java应用程序安全有效地访问Java堆之外的外部显存。

PatternMatchingforinstanceof

为instanceof操作符提供模式匹配。模式匹配使程序中的通用逻辑(即从对象中有条件地提取组件)得以更简练、更安全地抒发。

Records

Records提供了一种紧凑的句型来申明类,以帮助开发者写出更简约的代码,这种类是浅层不可变数据(shallowlyimmutabledata)的透明拥有者。该特点主要用在特定领域的类linux 下载工具,这种类主要用于保存数据linux设置默认网关,不提供领域行为。

StronglyEncapsulateJDKInternalsbyDefault

不仅sun.misc.Unsafe等关键的内部API外,默认对JDK内部进行强封装,用户也可以选择自JDK9以来默认的修身强封装。

SealedClasses(SecondPreview)

Sealedclass&interface(密封类和插口)可以限制什么类和插口可以承继或实现它们。

时间表

2020/12/10Rampdown第一阶段(来自主线的货叉)

2021/01/14加速第二阶段

2021/02/04初始版本候选

2021/02/18最终版本候选

2021/03/16全面上市

更新内容

JDK 16 版本发布内容介绍_JDK/Java 16 新特性 JEP 详解_linux jre16下载

Java™SE开发工具包16.0.2(JDK16.0.2)

2021年7月20日

此更新版本的完整版本字符串是16.0.2+7(其中“+”表示“构建”)。版本号为16.0.2。

IANATZ数据2021a

JDK16.0.2包含IANA时区数据2021a。

有关更多信息,请参阅JRE软件中的时区数据版本。

安全基线

JDK16.0.2发布时JavaRuntimeEnvironment(JRE)的安全基线如下表所示:

JRE家族版本JRE安全基线(完整版本字符串)

1616.0.2+7

1111.0.12+8

88u301-b09

77u311-b07

使JDK保持最新

Oracle建议使用每位重要补丁更新(CPU)更新JDK。为了确定某个版本是否是最新版本,可以使用“安全基准”页面来确定每位版本系列的最新版本。

包含安全漏洞修补的重要补丁更新提早一年在重要补丁更新、安全警报和公告中公布。不建议在计划于2021年10月19日进行的下一次关键补丁更新以后使用此JDK(版本16.0.2)。

删掉的功能和选项

安全库/java.security

删掉了Telia公司的SoneraClass2CA证书

以下根证书已从cacerts信任库中删掉:

+Telia公司

+soneraclass2ca

DN:CN=SoneraClass2CA,O=Sonera,C=FI

见JDK-8225081

其他注意事项

安装/安装

更新了JDKRPM提供的功能列表

以下功能已从OracleJDK/OracleJRERPM提供的列表中删掉:xml-commons-api、jaxp_parser_impl和java-fonts。列表的清理解决了与模块化rpm的现有和潜在冲突。

还有其他RPM提供这种功能,因而应当不会对依赖于它们的软件包形成影响。在此修改之前,包管理器可以使用其他RPM来满足OracleJDK/OracleJRERPM提供的依赖关系。

JDK-8263575(非公开)

Bug修补

此版本还包含针对Oracle重要补丁更新中描述的安全漏洞的修补程序。有关此版本中包含的错误修补的更完整列表,请参阅JDK16.0.2错误修补页面。

16.0.1

语言提高功能首次在JDK14中引入,在JDK16中完成

JEP394:instanceof的模式匹配–通过为instanceof运算符进行模式匹配来提高Java编程语言。

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

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

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

改进的显存管理以提升性能

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

JEP376:ZGC:并行线程堆栈处理–将ZGC线程堆栈处理从安全点移至并发阶段。这项工作清除了容许并发堆栈处理的最后一个显着困局。

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

JDK/Java 16 新特性 JEP 详解_JDK 16 版本发布内容介绍_linux jre16下载

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

解决未来不兼容的代码

JEP396:默认情况下强烈封装JDK内部–在JDK9中,我们强烈封装了新的内部API元素,因而限制了对它们的访问。并且,作为迁移的辅助手段linux jre16下载,JDK9故意选择在运行时不强烈封装JDK8中存在的软件包的内容。JDK16默认情况下封装了JDK的大多数内部元素(关键内部API除外),因而强化了此约束。诸如sun.misc.Unsafe。最终用户依然可以选择自JDK9以来默认使用的修身的强封装。这将鼓励开发人员从使用内部元素迁移到使用标准API,便于她们和她们的用户都可以毫不费劲地升级到将来的Java版本。

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

孵化和预览功能

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

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

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

JEP397:密封类(第二预览)–通过密封类和插口提高了Java编程语言。密封的类和插口限制可以扩充或实现它们的其他类或插口。

OpenJDK贡献者的改进

JEP347:启用C++14语言功能(在JDK源代码中)–允许在JDKC++源代码中使用C++14语言功能,并提供有关在HotSpot代码中可以使用什么功能的特定手册。

JEP357:从Mercurial迁移到Git–将OpenJDK社区的源代码储存库从Mercurial(hg)迁移到Git。

JEP369:迁移到GitHub–在GitHub上托管OpenJDK社区的Git储存库。

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

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

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

不断使Java显得更好

基于不断的创新,Java一直是最成功的开发平台之一,可以满足现代应用程序开发人员不断发展的需求。为了使OracleJavaSE订阅对顾客更具价值,Oracle添加了GraalVMEnterprise作为应享权力。GraalVM可以帮助提升应用程序的性能并降低资源消耗,尤其是在微服务和云原生构架中。通过借助OracleJavaSE订阅来管理Java资产的组织除了受惠于Oracle的最新增强功能和对Java专家的直接访问,并且与其他方式相比可节约大量成本。

“没有每隔三到四年就对Java的新事物形成兴趣,这些节奏使我成为饱含激情的开发人员,老师和培训师,这很活跃,”巴黎索邦学院东部的JoséPaumard助理院长和伦敦Java用户联合组织者说。Group。“我急切希望使用Records来增强数据处理代码的性能和可读性,而且还能将其用作预览功能以后,如今可以在此最新版本中使用它。”

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

Tagged:
Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复