JDK16 正式版发布了,网友:别更新了,学不动了~
今天,有读者告诉鸭哥JDK16正式版发布了,赶忙打开推特看看,我擦,确实发布了,这速度也太快了~
之前看过一篇文章,博主Simon Ritter从Oracle目前为止的公开发布中做出推断,并绘图展示了Java 的发布节奏,如下图所示
我们从图中也可以发现JDK16也是一个短期版本,只支持6个月。长期版本也只有 7、8、11、17,因此,目前最新的LTS版本,就是 JDK 11,已于2018年9月发布。接下来,咱们只能期待2021年即将发布的下一个LTS版本JDK17~
鸭哥也第一时间下载了,体验了一把,见下图:
目前,JDK16可以在官网下载,见下图:
官方地址:https://openjdk.java.net
源码地址:https://github.com/openjdk/jdk
Oracle同时还感谢参与JDK16处理Issues的组织,见下图
接下来,咱们说说JDK16有那些新特性。
# JDK16 新特性
1、JEP338:Vector API(孵化器阶段)
为jdk.incubator.vector配备一个孵化器模块,以表达可在支持的 CPU 架构上编译为最佳矢量硬件指令的矢量计算,以实现优于等效标量计算的性能。
2、JEP347:启用 C ++ 14语言功能
允许在 JDK C ++源代码中使用 C ++ 14功能。
3、JEP357、369:源码迁移到Github
OpenJDK 源码从 Mercurial 迁移到 Git,托管平台也迁移到 GitHub。
4、JEP376:ZGC(Z 垃圾收集器)线程堆栈处理
去掉ZGC线程堆栈处理从安全点到并发阶段,该计划的目标包括从 ZGC 安全点中删除线程堆栈处理。
5、JEP380:Unix 域套接字通道
增加 Unix 域套接字通道,其中在 nio.channels 包中的套接字通道和服务器套接字通道 API 中增加了 Unix 域(AF_UNIX)套接字支持。
6、JEP386、388:将JDK移植到Windows/AArch64平台
7、JEP387:弹性元空间能力
它可以将未使用的 HotSpot VM 类元数据(元空间)内存更迅速地返回给操作系统,从而减少元空间的占用空间并简化元空间代码,从而降低维护成本。
8、JEP 389:外部存储器访问 API
允许 Java 程序安全地访问 Java 堆外部的外部存储器。
9、JEP392:打包管理工具
提供用于打包独立 Java 应用程序的 jpackage 工具,如下:
jpackage --name myapp --module-path lib -m myapp
10、JEP393:外部存储器访问 API
允许 Java 程序安全地访问 Java 堆外部的外部存储器。
11、JEP394:instanceof运算符的模式匹配
用于 instanceof 运算符的模式匹配,在 JDK 14 和 JDK 15 中进行了预览,将在 JDK 16 中完成,如:
if (obj instanceof String s && s.length() > 5) {
flag = s.contains("jdk");
}
12、JEP395:Records
就是对之前玩法进行加强处理。
13、JEP396:加强JDK内部封装
除了 misc.Unsafe 等关键的内部 API 外,默认情况下对 JDK 内部进行强封装。用户可以选择自 JDK 9 以来默认的宽松的强封装。
说实话,这些功能,在鸭哥看来,对于咱们日常开发来说,真没啥吸引力,鸭哥的同事曾这样说过,“自从JDK8以后,再也没有赶上趟~”,说实话,这句话说到大多数Java开发者的心坎里去了~
作为一名老的Java程序员,鸭哥反正扎心了,还是感谢Java给了我一口饭吃~
# 冰点文库
鸭哥还看到一个消息,冰点文库已经永久停止服务了,具体内容如下图:
有的同学可能不知道这款软件是干啥的?它主要是帮你免费下载一些文档的,支持网站可就多了,见下图
相信你现在知道它是干嘛的了,相信很多同学都能用得上。鸭哥这里提前保存了一份旧版本,还可正常使用。
长按下方二维码,回复关键字:1317 获取