详情介绍
Java SE Development Kit 16(JDK/Java 16) 正式 GA。JDK/Java 16 总共包含 17 个 JEP,涉及到新语言特性、改进 JVM、新工具和库、对未来功能的验证、孵化和预览阶段的功能以及提升生产效率这几大方面。JDK/Java 16 的亮点包括孵化阶段的 Vector API、密封类和接口、将 JDK 移植到 Windows / AArch64平台、启用 C++14 语言特性,以及将 ZGC 线程堆栈处理从安全点移动到并发阶段等。最新的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)。 欢迎需要此款工具的朋友前来下载使用。
Java SE Development Kit 16 for Windows :点击下载
Java SE Development Kit 16 for Linux :点击下载
本次为大家提供的是Java SE Development Kit 16.0版本的下载地址,根据发布规划,JDK/Java 16 属于短期维护版本,仅有 6 个月的技术支持。下一个版本——计划9月发布的 JDK/Java 17 (21.9 LTS) 才是长期支持版本。
基本介绍
JDK 16是Java SE平台版本16的开源参考实现,由Java社区流程中的JSR 390指定。
JDK 16于2021年3月16日正式上市。Oracle提供了GPL下可用于生产的二进制文件。其他供应商的二进制文件也将很快发布。
该版本的功能和时间表是通过JEP流程(由JEP 2.0提案修订)提出并跟踪的。该发行版是使用JDK发行流程(JEP 3)制作的。
特征
338: Vector API (Incubator)
347: Enable C++14 Language Features
357: Migrate from Mercurial to Git
369: Migrate to GitHub
376: ZGC: Concurrent Thread-Stack Processing
380: Unix-Domain Socket Channels
386: Alpine Linux Port
387: Elastic Metaspace
388: Windows/AArch64 Port
389: Foreign Linker API (Incubator)
390: Warnings for Value-Based Classes
392: Packaging Tool
393: Foreign-Memory Access API (Third Incubator)
394: Pattern Matching for instanceof
395: Records
396: Strongly Encapsulate JDK Internals by Default
397: Sealed Classes (Second Preview)
功能特性
Vector API (Incubator)
处于孵化阶段的 Vector API,其中 JDK 将配备一个孵化器模块jdk.incubator.vector,用于表达可在支持的 CPU 架构上编译为最佳矢量硬件指令的矢量计算,以实现优于等效标量计算的性能。
Enable C++14 Language Features
启用 C++14 语言特性,支持在 JDK C++ 源代码中使用 C++14 语言特性。
Migrate from Mercurial to Git
OpenJDK 源代码库从 Mercurial 迁移到 Git。
Migrate to GitHub
OpenJDK 源代码库迁移到 GitHub,此变化是基于 OpenJDK 源代码库从 Mercurial 迁移到 Git。
ZGC: Concurrent Thread-Stack Processing
将 ZGC 线程堆栈处理从安全点移动到并发阶段。此计划的目标包括从 ZGC 安全点中删除线程堆栈处理。
Unix-Domain Socket Channels
为java.nio.channels包中的 socket channel 和 server-socket channel API 添加 Unix-domain (AF_UNIX) 支持。
Alpine Linux Port
针对 x64 以及 AArch64 架构,将 JDK 移植到 Alpine Linux 以及其他使用 musl 作为主要 C 语言库的 Linux 发行版上。
Elastic Metaspace
弹性元空间 (Elastic Metaspace) 能力,它可以将未使用的 HotSpot VM 类元数据(元空间)内存更迅速地返回给操作系统,从而减少元空间的占用空间并简化元空间代码,以及降低维护成本。
Windows/AArch64 Port
将 JDK 移植到 Windows/AArch64 平台。
Foreign Linker API (Incubator)
处于孵化阶段的 Foreign Linker API(外部链接器 API),该 API 用于对本地代码进行静态类型访问。
Warnings for Value-Based Classes
对基于值的类 (Value-Based Classes) 进行警告。在 Java 平台中对于任何基于值的类实例进行同步的错误尝试,会予以警告。
Packaging Tool
提供用于打包独立 Java 应用程序的 jpackage 工具。
Foreign-Memory Access API (Third Incubator)
处于孵化器第三阶段的 Foreign-Memory Access API,该 API 允许 Java 应用程序安全有效地访问 Java 堆之外的外部内存。
Pattern Matching for instanceof
为 instanceof 操作符提供模式匹配。模式匹配使程序中的通用逻辑(即从对象中有条件地提取组件)得以更简洁、更安全地表达。
Records
Records 提供了一种紧凑的语法来声明类,以帮助开发者写出更简洁的代码,这些类是浅层不可变数据(shallowly immutable data)的透明拥有者。该特性主要用在特定领域的类,这些类主要用于保存数据,不提供领域行为。
Strongly Encapsulate JDK Internals by Default
除了sun.misc.Unsafe等关键的内部 API 外,默认对 JDK 内部进行强封装,用户也可以选择自 JDK 9 以来默认的宽松强封装。
Sealed Classes (Second Preview)
Sealed class & interface(密封类和接口)可以限制哪些类和接口可以继承或实现它们。
时间表
2020/12/10 Rampdown第一阶段(来自主线的货叉)
2021/01/14加速第二阶段
2021/02/04初始版本候选
2021/02/18最终版本候选
2021/03/16全面上市
更新内容
Java™ SE 开发工具包 16.0.2 (JDK 16.0.2)
2021 年 7 月 20 日
此更新版本的完整版本字符串是 16.0.2+7(其中“+”表示“构建”)。版本号为 16.0.2。
IANA TZ 数据 2021a
JDK 16.0.2 包含 IANA 时区数据 2021a。
有关更多信息,请参阅 JRE 软件中的时区数据版本。
安全基线
JDK 16.0.2 发布时 Java Runtime Environment (JRE) 的安全基线如下表所示:
JRE 家族版本 JRE 安全基线(完整版本字符串)
16 16.0.2+7
11 11.0.12+8
8 8u301-b09
7 7u311-b07
使 JDK 保持最新
Oracle 建议使用每个重要补丁更新 (CPU) 更新 JDK。为了确定某个版本是否是最新版本,可以使用“安全基准”页面来确定每个版本系列的最新版本。
包含安全漏洞修复的重要补丁更新提前一年在重要补丁更新、安全警报和公告中公布。不建议在计划于 2021 年 10 月 19 日进行的下一次关键补丁更新之后使用此 JDK(版本 16.0.2)。
删除的功能和选项
安全库/java.security
➜ 删除了 Telia 公司的 Sonera Class2 CA 证书
以下根证书已从 cacerts 信任库中删除:
+ Telia 公司
+ soneraclass2ca
DN:CN=Sonera Class2 CA,O=Sonera,C=FI
见JDK-8225081
其他注意事项
安装/安装
➜ 更新了 JDK RPM 提供的功能列表
以下功能已从 OracleJDK/OracleJRE RPM 提供的列表中删除:xml-commons-api、jaxp_parser_impl 和 java-fonts。列表的清理解决了与模块化 rpm 的现有和潜在冲突。
还有其他 RPM 提供这些功能,因此应该不会对依赖于它们的软件包产生影响。在此更改之前,包管理器可以使用其他 RPM 来满足 OracleJDK/OracleJRE RPM 提供的依赖关系。
JDK-8263575(非公开)
Bug修复
此版本还包含针对 Oracle 重要补丁更新中描述的安全漏洞的修复程序。有关此版本中包含的错误修复的更完整列表,请参阅 JDK 16.0.2 错误修复页面。
16.0.1
语言增强功能首次在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助理教授和巴黎Java用户联合组织者说。 Group。“我迫切希望使用Records来提高数据处理代码的性能和可读性,并且能够将其用作预览功能之后,现在可以在此最新版本中使用它。”
开发人员可以了解有关Java 16的更多信息,并在3月23日,25日和30日的Oracle Developer Live:Java创新上获得动手经验。
下载地址
人气软件
Fish Shell Mac版 for Mac V3.1.2 苹果电脑版
Java SE Development Kit(JDK) 21 LTS for Mac v21.0.3 官方正式
IntelliJ IDEA 社区版 2024.3 Mac中文正式免费版(附安装教程)
Myeclipse for Mac V2014 苹果电脑版(附破解工具及破解教程)
Navicat for MySQL 11 for Mac V11.2.18 苹果电脑版
Mathematica for Mac 11.3 中文特别版(附注册机+激活方法)
JDK11(Java SE Development Kit 11) for Mac v11.0.25 x64 官方
SvnX(SVN客户端软件) for Mac V1.3 苹果电脑版
Jetbrains Clion、PyCharm、WebStorm、PhpStorm等万能破解注册机
Mathematica 12 for Mac 12.3.0 中/英文正式破解版(附注册机+激
相关文章
- Java配置 JDK开发环境搭建及环境变量配置详细图文教程
这篇文章主要介绍了Java配置 JDK开发环境搭建及环境变量配置详细图文教程,需要的朋友可以参考下...
- windows下jdk安装图解(覆盖安装报错)
这篇文章主要介绍了windows下jdk安装图解,覆盖安装报错,第一次安装和第二次安装区别,需要的朋友可以参考下...
- 把MyEclipse的默认jdk版本修改为本地JDK的方法介绍
最近,有不少网友问小编如何更改MyEclipse默认的JDK版本为自己安装的JDK?今天小编就给大家详细介绍一下把MyEclipse的默认jdk版本修改为本地JDK的方法,希望对大家有所帮助...
- JDK1.9怎么安装配置?Java SE 9(JDK9)详细安装教程+环境变量配置方法
JDK1.9是JDK是整个Java的核心,包括了Java运行环境,一堆Java工具和Java基础的类库。新版本增添了特性和性能提升,下面小编就整理了Java SE Development Kit 9.0安装详细步...
- mac安装jdk及环境变量配置文件
这篇文章主要介绍了mac安装jdk及环境变量配置文件的详细操作过程,喜欢的收藏一下吧。...
- Java jdk环境变量配置方法
这篇文章主要介绍了Java jdk环境变量配置方法的相关资料,需要的朋友可以参考下...
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的Java SE Development Kit 16(JDK) for Mac v16.0.2 苹果电脑版资源来源互联网,版权归该下载资源的合法拥有者所有。