动力节点旗下在线教育品牌  |  咨询热线:400-8080-105 学Java全栈,上蛙课网
首页 > 文章

Java情报站:Java 15的新功能

07-21 17:50 408浏览
举报 T字号
  • 大字
  • 中字
  • 小字

随着 Java 14于3月17日全面上市,将在2020年9月15日推出Java 15的后续产品。到目前为止,已经计划对该版本进行八次正式更改。5月初添加了三个建议,包括替换旧的DatagramSocket APIinstanceof 操作员提供模式匹配的第二个预览以及禁用和弃用偏置锁定。就目前搜集到的情报,让我们来了解一下java15的新功能

截至5月5日,所有这三个新提案都处于“针对目标的提案”阶段。之前的五个提案已正式成为Java开发工具包(JDK)15的目标,这是下一版Java SE(标准版)的基础。在9月正式上市之前,将在6月和7月进行缩减阶段,然后在8月发布两个候选版本。 

通过资料和官网的消息我们得到OpenJDK 15提案的详细信息:

通过用更简单更现代的实现方式来代替java.net.datagram.Socket 和  java.net.MulticastSocketAPI 的基础实现,从而重新实现旧的DatagramSocket API,该实现方式(1)易于调试和维护(2)使用Project Loom中正在探索的虚拟线程新计划是对JDK增强建议的后续,该建议重新实现了旧版Socket API。目前实现 java.net.datagram.Socket 和  java.net.MulticastSocket 可追溯至JDK 1.0和IPv6时是仍处于开发阶段的时间。因此,当前的实现MulticastSocket 尝试以难以维护的方式协调IPv4和IPv6。

   默认情况下禁用偏向锁定,并弃用所有相关的命令行选项。目的是确定是否需要继续支持代价昂贵的,具有维护成本的偏向锁定同步优化,该优化在HotSpot虚拟机中用于减少无竞争锁定的开销。尽管某些Java应用程序可能会在禁用偏置锁定的情况下看到性能下降的趋势,但是偏置锁定的性能提升通常不如从前那样明显。

JDK 14中的先前预览之后,第二个模式匹配 instanceof预览模式匹配使程序中的通用逻辑(主要是从对象中有条件地提取组件)得以更简洁地表达。Haskell和C#等语言因其简洁性和安全性而接受了模式匹配。

隐藏类(意指不能被其他类的字节码直接使用的类)旨在由在运行时生成类并通过反射间接使用它们的框架使用。可以将隐藏类定义为访问控制嵌套的成员 并且可以独立于其他类进行卸载。该提案将通过启用标准API来定义无法发现且具有有限生命周期的隐藏类,从而提高JVM上所有语言的效率。JDK内部和外部的框架将能够动态生成可以代替定义隐藏类的类。基于JVM构建的许多语言都依靠动态类生成来提高灵活性和效率。该提案的目标包括:允许框架将类定义为框架的不可发现的实现细节,因此它们不能与其他类链接,也不能通过反射来发现;支持使用不可发现的类扩展访问控制嵌套;并支持积极卸载不可发现的类,因此框架可以灵活地定义所需的数量另一个目标是弃用非标准API  misc.Unsafe::defineAnonymousClass 目的是不赞成在将来的版本中将其删除。另外,由于此提议,Java语言也不会更改。

根据该建议,垃圾收集器(ZGC)将从实验功能升级为产品。ZGC已集成到  2018年9月发布的JDK 11中,是一个可扩展的低延迟垃圾回收器。引入ZGC是一项实验功能,因为Java的开发人员决定应谨慎而逐步地引入这种大小和复杂性的功能。从那时起,添加了许多改进,从并发类卸载,未使用内存的未提交,对数据类共享的支持到改进的NUMA感知和多线程堆预触。此外,最大堆大小已从4 TB增加到16 TB。支持的平台包括Linux,Windows和MacOS。

文本块,在JDK 14和JDK 13中均已预览旨在通过简化表示跨越几行源代码的字符串的方式来简化编写Java程序的任务,同时避免常见情况下的转义序列。文本块是一种多行字符串文字,它避免了大多数转义序列的需要,以可预测的方式自动设置字符串格式,并在需要时为开发人员提供了对该格式的控制权。文本块建议的目标是提高Java程序中字符串的可读性,这些Java程序表示用非Java语言编写的代码。另一个目标是通过规定任何新构造都可以表达与字符串文字相同的字符串集,解释相同的转义序列并以与字符串文字相同的方式进行操作来支持从字符串文字的迁移。

暂停时间的垃圾收集器将成为一个生产特点和移动实验阶段的出来一年前已将其集成到JDK中。

Nashorn的移除2014年3月在JDK 8中首次亮相但此后已被诸如GraalVM之类的技术淘汰。OpenJDK 15提案要求删除Nashorn API和jjs。用于调用Nashorn的命令行工具。

可以在java.jdk.net上找到JDK 15的早期访问版本根据Oracle六个月的发布节奏,JDK 15将是一个短期功能发布,支持六个月下一个长期支持(LTS)版本将获得几年的支持,它将是JDK 17,该版本将于2021年9月到货。当前的LTS版本是JDK 11,该版本于2018年9月发布。

作为一个java学习者和爱好者,每逢java新版本的发布,都给我们带来了不可描述的一些影响,有利有弊,有惊喜也有失望。不管怎样,希望java的新版本越来越完美,功能越来越强大,细节处理越来越好。

0人推荐
共同学习,写下你的评论
0条评论
代码小兵1280
程序员代码小兵1280

11篇文章贡献54542字

作者相关文章更多>

推荐相关文章更多>

Java数据结构

HelloWorld10-31 08:24

浅谈MySQL中SQL优化的常用方法

军哥08-12 23:29

五分钟读懂UML类图

江湖人称小李白12-10 10:41

MyBatis开发框架的四大核心

IT逐梦者08-17 21:43

一次搞定continue,break和return

HelloWorld11-06 11:19

发评论

举报

0/150

取消