JDK/Java 16 可能带来什么新特性?

来源: OSCHINA
2020-12-02

JDK 15 已于今年 9 月 15 日发布,这是一个短期版本,只会受到 Oracle 6 个月的支持。JDK 16 将作为标准 Java 版本的参考实现在 2021 年 3 月 16 日发布。与 JDK 15 一样,JDK 16 也将是个短期版本,仅提供 6 个月的支持。预计于 2021 年 9 月发布的 JDK 17 将是一个长期支持(LTS)版本,会获得数年的支持。目前的 LTS 版本 JDK 11 则于 2018 年 9 月发布。

JDK 16 现在处于 Early-Access(EA,早期访问)阶段,目前最新版本是 Build 26

InfoWorld  所述,截至 2020 年 11 月 30 日,已有 14 个特性已被正式提了出来,还有 2 个特性则是预测性质。Java 16 即将推出的新功能或包括有:

  • 之前在 JDK 15 中预览过,密封类和接口限制了哪些其他类和接口可以继承或实现它们。该计划的目标包括:允许类或接口的作者控制负责实现它的代码,提供比访问修饰符更声明性的方式来限制超类的使用,并通过提供模式分析的基础来支持模式匹配的未来方向。
  • 除了 misc.Unsafe 等关键的内部 API 外,默认情况下对 JDK 内部进行强封装。用户可以选择自 JDK 9 以来默认的宽松的强封装。
  • 外部链接程序 API,提供对本地代码的静态类型的纯 Java 访问。该 API 将在 JDK 16 中处于孵化阶段。
  • 移动 ZGC(Z 垃圾收集器)线程堆栈处理从安全点到并发阶段。该计划的目标包括从 ZGC 安全点中删除线程堆栈处理。
  • 弹性元空间能力,它可以将未使用的 HotSpot VM 类元数据(元空间)内存更迅速地返回给操作系统,从而减少元空间的占用空间并简化元空间代码,从而降低维护成本。
  • 启用 C ++ 14语言功能,允许在 JDK C ++源代码中使用 C ++ 14功能。
  • 孵化器阶段的矢量 API,其中 JDK 将配备一个孵化器模块,jdk.incubator.vector,以表达可在支持的 CPU 架构上编译为最佳矢量硬件指令的矢量计算,以实现优于等效标量计算的性能。
  • 将 JDK 移植到 Windows / AArch64平台。
  • 在 x64和 AArch64体系结构上,将 JDK 移植到 Alpine Linux 和其他使用 musl 作为其主要 C 库的 Linux 发行版。
  • 提供记录类,作为不可更改数据的透明载体。
  • 增加 Unix 域套接字通道,其中在 nio.channels 包中的套接字通道和服务器套接字通道 API 中增加了 Unix 域(AF_UNIX)套接字支持。
  • 外部存储器访问 API,允许 Java 程序安全地访问 Java 堆外部的外部存储器。
  • 用于 instanceof 运算符的模式匹配,在 JDK 14 和 JDK 15 中进行了预览,将在 JDK 16 中完成。
  • 提供用于打包独立 Java 应用程序的 jpackage 工具。
  • OpenJDK 源码从 Mercurial 迁移到 Git,托管平台也迁移到 GitHub。

详情可查看:https://jdk.java.net/16/ 

展开阅读全文
12 收藏
分享
加载中
精彩评论
java语言本身真的不如c#
2020-12-02 12:09
28
举报
不可否认的一点:Java 语言开发的系统,代码存有量,比 C#多得多。。重量级的支持者 Java 也比 C# 的多。。因此,Java 比 C# 更关注的不是语法糖,而是向后兼容(资产保持),每出一个新语法,都可能涉及到 JIT ,JVM 的运作,所以尽量保守,长期测试,就是 Java 目前的活法。。。而 C# 就不同,说得不好听一点,就是 当前版本推倒重来,C#的使用者也只能捏着鼻子认了,因此 C# 的顾虑明显比 Java 少了很多,甚至 OS 与 C#本是一家,随时都能通过 OS 来加持 C# 应用。。说不支持 Win7,你的 C# 开发肯定也不需要考虑在 WIn7 上跑。。而JVM 就没这么 “幸运”了。。有时愿望是很好,现实很骨感
2020-12-03 10:02
24
举报
吓得我赶紧抚摸一下.net 5
2020-12-02 13:19
14
举报
感觉java虽然发布版本的速度快,但好多新特性都不是正式版,都是预览版啥的,非要等到LTS才转正,而且非LTS只有6个月的时间,相比C#每个版本都是正式版,不存在预览特性,要好多了
2020-12-02 11:03
12
举报
握草,我差点以为c#不向后兼容了。对自己不熟悉的东西咋评论得这么得劲儿呢。
2020-12-03 10:42
11
举报
最新评论 (100)
将jdk移入到window平台中,是说明以后window系统不用再安装jdk了吗
2020-12-09 23:59
0
回复
举报
和c#有啥关系,每个语言都有他的适用性。我用java,也用c#,用java写web后端,用c#写桌面客户端。因为java后端的框架多,spring好使,用c#的话也可以,但大部分都用java,用java写桌面客户端就难受了,awt,swing写出来的太难看了,winform用起来就很舒服,然后还有各种第三方皮肤,系统api也比java用起来强的多
2020-12-07 14:09
1
回复
举报
C# 和 Java 互相鄙视,原来是真的哈哈哈哈哈
2020-12-07 09:54
0
回复
举报
明面上鄙视,暗地里学了C#的都担心找工作
2020-12-07 13:52
1
回复
举报
能不能找工作还是看个人水平的
2020-12-07 19:43
0
回复
举报
万年Java8
2020-12-06 18:50
1
回复
举报
马上月底8的支持就要到期了,应该很多公司要升到11了吧?
2020-12-07 11:08
0
回复
举报
终于官方提供基于alpine的musl构建了,好评
2020-12-06 16:35
0
回复
举报
太多.net被Java抢了饭碗,所以大家要理解他们的心情
2020-12-05 17:41
6
回复
举报
我要引战了,估计评论里没有几个年薪过百万的。
2020-12-05 09:30
1
回复
举报
整个网站都没几个哈哈
2020-12-05 14:49
0
回复
举报
java除了吃内存便于卖硬件外就是旧代码多!
2020-12-04 21:55
0
回复
举报
还是只有出现协程,才有更新的动力!loom合适才能发布啊
2020-12-04 17:57
1
回复
举报
前段时间推翻了设计重新来,然后人手不足,提交活跃度也很低。看来,project loom会以失败告终
2020-12-05 12:27
0
回复
举报
project loom真有必要吗,解决了什么实际问题?
2020-12-07 14:32
0
回复
举报
同步的代码,异步的执行。用来写服务器后端很合适
2020-12-08 22:25
0
回复
举报
应该说,更适合小白;现在java 里写异步代码还是费脑子
2020-12-09 08:02
0
回复
举报
有人用java8以上的版本了吗?
2020-12-04 17:46
0
回复
举报
更多评论
100 评论
12 收藏
分享
返回顶部
顶部