JDK 16 新特性,正式发布!程序员:追不上了……

JAVA公众号

共 3682字,需浏览 8分钟

 · 2020-12-22

注:由于公众号文章推送规则改变,所以为了大家能够准时收到我们的文章推送,请记得将公众号: JAVA 设为星标~这样就不会错过每一篇精彩的推送啦~


 文末有好书推荐 
是的,你确实没有看错,JDK16快要发布了~

你还能追上 Java 的更新速度吗?

当开发者深陷 Java 8 版本之际,这边下一版本 Java 16 有了最新的消息,与 Java 15 一样,作为短期版本,Oracle 仅提供 6 个月的支持。
根据发布计划,JDK 16 将在 12 月 10 日和 2021 年 1 月 14 进入 Rampdown 阶段,2021 年 2 月 4 日到 2 月 18 日进入发布候选阶段。
最终版本预计于 2021 年 3 月 16 日正式发布。
日前, JDK 16 揭晓了即将到来的新功能,接下来,我们将一睹为快:
  • 以前在 JDK 15 中预览的密封类和接口限制其他类和接口可以扩展或实现它们。该计划的目标包括,允许类或接口的作者控制负责实现它的代码,提供比访问修饰符更声明性的方式来限制超类的使用,以及通过提供模式分析的基础来支持模式匹配的未来方向。
  • 默认情况下,对 JDK 内部进行强封装,但关键内部 API(如 misc.Unsafe ) 除外。用户可以选择自 JDK 9 以来默认的宽松强封装。此建议的目标包括提高 JDK 的安全性和可维护性,作为项目 Jigsaw 的一部分,并鼓励开发人员从使用内部元素迁移到使用标准 API,以便开发人员和最终用户都可以轻松地更新到未来的 Java 版本。
  • 外部链接程序 API,提供静态类型、纯 Java 对本机代码的访问。此 API 将在 JDK 16 中处于孵化器阶段。
  • 将 ZGC(Z 垃圾收集器)线程堆栈处理从安全点移动到并发阶段。此计划的目标包括从 ZGC 安全点中删除线程堆栈处理。
  • 弹性元空间功能,它将可以更迅速地将未使用的 HotSpot VM 类元数据(元空间)内存返回到操作系统,减少元空间占用空间并简化元空间代码以降低维护成本。
  • 启用 C++ 14 语言功能,允许在 JDK C++ 源代码中使用C++ 14功能,并提供有关部分功能可用于 HotSpot VM 代码的特定指导。
  • 孵化器阶段的向量 API,其中 JDK 将安装一个孵化器模块,用于表示编译为支持的 CPU 体系结构上的最佳矢量硬件指令的矢量计算,以实现与等效标量计算更高的性能。
  • 将 JDK 移植到 Windows/AArch64 平台。随着新的服务器级和使用者 AArch64 (ARM64) 硬件的发布,Windows/AArch64 已成为一个重要的平台。
  • 在 x64 和 AArch64 体系结构上,将 JDK 移植到 Alpine Linux 和其他使用 musl 作为主 C 库的 Linux 发行版。Musl 是 ISO C 和 Posix 标准中描述的标准库功能的 Linux 实现。由于云部署、微服务和容器环境,Alpine Linux 由于其映像大小较小,因此被广泛采用。
  • 为不可变数据提供充当透明载体的记录类。
  • 增加 Unix 域套接字通道,其中 Unix 域 (AF_UNIX) 套接字支持添加到 nio.channels 包中的套接字通道和服务器套接字通道 API 中。该计划还扩展了继承的通道机制,以支持 Unix 域套接字通道和服务器套接字通道。Unix 域套接字用于同一主机上的进程间通信。它们在很多方面与 TCP/IP 套接字类似,只是它们由文件系统路径名称而不是 IP 地址和端口号寻址。新功能的目标是支持 Unix 域套接字通道的所有功能,这些功能在主要 Unix 平台和 Windows 中很常见。
  • 一种外部存储器访问 API,允许 Java 程序安全地访问 Java 堆以外的外部存储器。这一功能将在 JDK 16 中重新孵化。优化的目标包括提供单个 API 以对各种外部存储器(包括本机、持久和托管堆内存)进行操作,API 不应破坏 JVM 的安全性。此外,许多 Java 程序应访问外部存储器,如Lgnite、Memcached 和 MapDB。但是 JavaAPI 不能提供令人满意的访问外部内存 .MemorySegmentMemoryAddresses 的解决方案。
  • 用于运算符的模式匹配(该功能也在 JDK 14/15 版本中实现了预览)。在 JDK 16 上,模式匹配允许程序中的通用逻辑,即从对象中提取组件,可以更简洁、更安全地表达.instanceof 运算符。
  • 提供用于打包独立的 Java应用程序 jpackage 工具。最初作为 JDK 14 中的孵化工具,jpackage在 JDK 15中仍然处于孵化期。预计到 JDK 16 版本,jpackage 将会进入生产环境中,支持本地包格式,并为用户提供流畅的安装体验,以及允许在打包时指定启动时间参数。格式包括 Windows 上的 msi 和 exe、 MacOs 上的 pkg 和 dmg、以及 Linux 上的 deb 和 rpm 。该工具可以直接从命令行调用,也可以以编程方式调用。新的打包工具解决了许多 Java 应用程序需要以一流的方式安装在本机平台上,而不是放置在类路径或模块路径上等问题。
  • OpenJDK 源代码存储库从 Mercurial 迁移到 Git。推动这项工作是借助版本控制系统元数据和可用工具及托管方面的优势。
  • 借助 JEP 369,托管平台迁移到 GitHub。在今年 9 月 5 日,Mercurial JDK 和 JDK 沙盒向 Git、GitHub 和 Skara 的过渡工作已实现。
继 Java 16 之后,Java 17 将于 2021 年 9 月发布,这是长期支持(LTS)版本,因此身处研发前线的开发者可以再等等。
对此,你期待新版 Java 的到来吗?

参考链接:

https://www.infoworld.com/article/3569150/jdk-16-the-new-features-in-java-16.html

来源:CSDN资讯
地址:https://blog.csdn.net/csdnnews/article/details/110483909







程序员必备书籍推荐



《Node.js企业级应用开发实战

书籍简介:

《Node.js企业级应用开发实战》主要是介绍Node.js技术栈,内容涉及Node.js的基础知识、核心编程、网络编程、数据存储、综合应用等五大部分。其中综合应用部分,更是以一个真实的“新闻头条”互联网应用作为案例,可以令读者从0开始掌握Node.js


《Node.js企业级应用开发实战》案例丰富、技术新颖,除了Node.js技术外,还讲述了Express、Socket.IO、Angular、MySQL、MongoDB、Redis等热门技术的应用。全书分为以下部分:基础知识(第1-3章):介绍Node.js的基础知识,包括模块化、测试等;核心编程(第4-9章):介绍Node.js的缓冲区、事件、定时、文件、进程、流等方面的处理;网络编程(第10-17章)介绍Node.js的TCP、UDP、HTTP、WebSocket、TSL/SSL、中间件、Angular、响应式编程等方面的内容;数据存储(第18-20章)介绍Node.js关于MySQL、MongoDB、Redis等数据存储的操作;综合应用(第21-22章)介绍Node.js实现“新闻头条”互联网应用的完整过程。


Git从入门到精通


书籍简介:

 Git是一款让人一开始觉得很容易学,但却很难精通的工具。本书除了介绍Git的相关知识外,还会模拟各种常见的状况,让读者知道应该在什么时候使用什么指令。 
  《Git从入门到精通》共分11个章节,1~3章介绍安装工具及环境,对于已经安装完成的读者可直接从第4章开始阅读。第5章介绍Git基本的使用方式,虽然难度不高,但却是整个Git系统的基础。第6章介绍Git中常用的分支功能以及使用情境,第7~9章则是介绍如何修改现有的历史记录、使用标签,以及如何应对其他常见的状况。 
  前面的内容都是在自己的计算机上就可以完成的,从第10章开始介绍如何将自己计算机里的记录推一份到线上(GitHub)。最后一章(第11章)介绍团队开发时可能会使用的开发过程Git Flow。 

  市面上的参考书籍或网络教程大多是教大家如何通过终端机指令来学习Git,这让不少想学习Git的新手打了退堂鼓。本书除了教大家如何在终端机视窗中输入Git指令,还搭配了图形界面工具,缓和了读者的学习曲线,让读者更容易上手。

点击下方「阅读原文」可以直接购买

浏览 2
点赞
评论
收藏
分享

手机扫一扫分享

举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

举报