温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JDK 16:Java 16的新功能有哪些

发布时间:2021-10-22 16:31:09 来源:亿速云 阅读:149 作者:iii 栏目:编程语言

本篇内容介绍了“JDK 16:Java 16的新功能有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

可以在jdk.java.net上找到适用于Linux,Windows和MacOS的JDK 16的早期版本。与JDK 15一样,JDK  16将是一个短期版本,支持六个月。将于2021年9月发布的JDK 17将是一个长期支持(LTS)版本,将获得数年的支持。当前的LTS版本JDK  11已于2018年9月发布。

JDK 16将作为标准Java版本的参考实现,将在明年3月到来。

截至10月8日,八项提案正式针对JDK16。Java16的新功能包括:

  • 将ZGC(Z垃圾收集器)线程堆栈处理从安全点safepoints迁移到并发阶段。该计划的目标包括从ZGC安全点中删除线程堆栈处理。使堆栈处理变得惰性,协作,并发和增量;从ZGC安全点删除所有其他每线程根处理;并为其他HotSpot  VM子系统提供了一种机制来延迟处理堆栈。这样,ZGC使HotSpot中的GC暂停和可伸缩性问题成为过去。到目前为止,随着堆大小和元空间大小而扩展的GC操作已经从安全点操作中移出并进入并发阶段。这些包括标记,重定位,参考处理,类卸载和大多数根处理。GC安全点中唯一仍进行的活动是根处理和有时间限制的标记终止操作的子集。这些根目录包括Java线程堆栈和其他线程根目录,这些根目录存在问题,因为它们随线程数的增长而扩展。为了超越当前状况,必须将包括堆栈扫描在内的每线程处理移至并发阶段。使用此计划,改进的延迟的吞吐成本应该是微不足道的,并且在典型计算机上的ZGC安全点内花费的时间应少于一毫秒。

  • 弹性元空间能力,它可以将未使用的HotSpot  VM类元数据(元空间)内存更迅速地返回给操作系统,从而减少了元空间的占用空间并简化了元空间代码,从而降低了维护成本。元空间存在大量的堆外内存使用问题。该计划要求用基于伙伴的分配方案替换现有的内存分配器,提供一种将内存划分为多个分区以满足内存请求的算法。这种方法已在Linux内核等地方使用,它将使在较小的块中分配内存以减少类加载器的开销变得切实可行。碎片也将减少。此外,从操作系统到内存管理领域的内存承诺将根据需要延迟执行,减少了从大型舞台开始但不立即使用它们或可能未完全使用它们的装载机的占地面积。为了充分利用伙伴分配所提供的弹性,将元空间内存排列成大小统一的颗粒,这些颗粒可以彼此独立地进行提交和不提交。

  • 启用C ++ 14语言功能,以允许在JDK C ++源代码中使用C ++ 14功能,并提供有关在HotSpot  VM代码中可以使用其中哪些功能的特定指南。通过JDK 15,JDK中C ++代码使用的语言功能已限于C ++ 98/03语言标准。使用JDK  11,源代码已更新,以支持使用更新版本的C ++标准进行构建。这包括能够使用支持C ++  11/14语言功能的最新版本的编译器进行构建。本提案不建议在HotSpot之外使用的C ++代码的样式或用法更改。但是要利用C  ++语言功能,需要进行一些构建时更改,具体取决于平台编译器。

  • 孵化器阶段的矢量API,其中JDK将装有一个孵化器模块,jdk.incubator.vector,以表达可在支持的CPU架构上编译为最佳矢量硬件指令的矢量计算,以实现优于等效标量计算的性能。向量API提供了一种使用Java编写复杂向量算法的机制,该机制使用HotSpot  VM中预先存在的支持进行向量化,但其用户模型使向量化更可预测且更可靠。该提案的目标包括提供一个清晰简洁的API来表达一系列矢量计算,通过支持多种CPU架构而与平台无关,在x64和AArch74架构上提供可靠的运行时编译和性能。优雅降级也是一个目标,

  • 将JDK移植到Windows / AArch74平台。随着新的服务器类和消费类AArch74(ARM64)硬件的发布,由于需求,Windows /  AArch74已成为重要的平台。尽管移植本身已经基本完成,但该建议的重点是将端口集成到主线JDK存储库中。

  • 在x64和AArch74体系结构上,将JDK移植到Alpine Linux和其他使用musl作为其主要C库的Linux发行版。Musl是ISO  C和Posix标准中描述的标准库功能的Linux实现。由于Alpine  Linux的映像较小,因此已在云部署,微服务和容器环境中广泛采用。Linux的Docker映像小于6MB。在这样的设置中让Java开箱即用地运行,将允许Tomcat,Jetty,Spring和其他流行的框架在这些环境中本机运行。通过使用jlink减小Java运行时的大小,用户可以创建专门为运行特定应用程序而定制的甚至更小的映像。

  • OpenJDK源代码库从Mercurial迁移到Git。推动这一努力的是版本控制系统元数据大小以及可用工具和托管方面的优势。

  • 迁移到GitHub,与从Mercurial到Git的迁移有关,JDK 16源代码存储库位于流行的代码共享站点上。Mercurial  JDK和JDK-sandbox的向Git,GitHub和Skara的过渡已于9月5日完成,现已开放供稿。 

“JDK 16:Java 16的新功能有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI