JDK/Java 16 GA

来源: OSCHINA
编辑: oschina
2021-03-16

JDK/Java 16 正式 GA。

根据发布规划,JDK/Java 16 属于短期维护版本,仅有 6 个月的技术支持。下一个版本——计划9月发布的 JDK/Java 17 (21.9 LTS) 才是长期支持版本。

JDK/Java 16 的亮点包括孵化阶段的 Vector API、密封类和接口、将 JDK 移植到 Windows / AArch64平台、启用 C++14 语言特性,以及将 ZGC 线程堆栈处理从安全点移动到并发阶段等。

JDK/Java 16 总共包含 17 个 JEP,涉及到新语言特性、改进 JVM、新工具和库、对未来功能的验证、孵化和预览阶段的功能以及提升生产效率这几大方面。

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(密封类和接口)可以限制哪些类和接口可以继承或实现它们。

详情查看 https://openjdk.java.net/projects/jdk/16/
下载地址 https://www.oracle.com/

展开阅读全文
13 收藏
分享
加载中
精彩评论
你发任你发,万年 Java 8。
2021-03-16 23:10
110
举报
赞·~~~ 如此高频的发布~~ 什么特性已经不在关注了~~ 反而 对于什么时候发布下个版本 才是 我所关注的~~~
2021-03-16 23:08
18
举报
你发任你发,我只用 J 8。😂
2021-03-19 11:02
9
举报
都不想升,可见 Java 本身在某种程度上成为了语言层面、社区生态层面的历史技术债,版本8已经是,版本11也将在几年后是了,zgc 好像都没几个人讨论,老人们反而宁可叫新人多学过去的各种调优、hack手段,然后接盘,有时候想着某个技术下一个庞大的用户群体真不配享受技术进步带来的各种福利啊
2021-03-17 23:56
7
举报
说几个比较有用的api
Stream新增toList方法
DateFormatter新增 字符“B” 用来表示本地化时间的 “上午” 或者 “下午” “晚上”等时间
其他新特性基本用不上
。。还有代码托管变成git这种事也能当做一个新特性发布吗?
2021-03-16 22:57
6
举报
最新评论 (52)
不换11基本上是11的支持时间还没8的支持时间长,8的新特性就要很久沉淀期企业要的是稳定,还有兼容性部分一下不适应,g1这些如果内存不大根本没有优势,等17估计发布然后到明年4月更新后会有大部分人换17
2021-03-20 12:03
0
回复
举报
😳这个配图,以为16是终版,一路走好……
2021-03-20 08:46
2
回复
举报
JAVA100
2021-03-19 15:13
1
回复
举报
坐等JAVA20
2021-03-19 13:29
0
回复
举报
你发任你发,我只用 J 8。😂
2021-03-19 11:02
9
回复
举报
万年java8 哈哈
2021-03-19 08:19
0
回复
举报
何必呢
2021-03-18 19:24
0
回复
举报
没有技术债务的情况下,当然是拥抱jdk17啦
2021-03-18 17:20
2
回复
举报
为什么要配个黑白蜡烛图,表示不开源的话要走向末路吗?
2021-03-18 16:55
0
回复
举报
还有部分系统用的JAVA6,好慌啊
2021-03-18 15:29
0
回复
举报
更多评论
52 评论
13 收藏
分享
返回顶部
顶部