全国服务热线:400-035-8011

位置:哈尔滨IT培训学院 > 学校动态 > Java15即将到来,新特性速览

Java15即将到来,新特性速览

来源:哈尔滨IT培训学院时间:2020/8/31 9:06:34

       按照Oracle六个月一更新的周期来看,JDK15即将于今年9月15日发布。据了解,目前新版的Java处于发布候选阶段,包含文本块、垃圾收集器、隐藏类以及模式匹配和记录的功能预览版。
       在发布前夕,我们不妨先一窥新版JDK的新特性:
       第二个外部内存访问API(孵化阶段),它将使Java程序安全地访问Java堆以外的外部存储器。该API应该能够在各种外部内存(如本机、持久和托管堆)上进行操作。许多Java程序访问外部存储器,如lgnite和MapDB。API有助于避免与垃圾回收相关的成本和不可预测性,跨进程共享内存以及通过将文件映射到内存,来序列化和取消序列化内存内容。JavaAPI目前无法提供令人满意的访问外部内存的解决方案。但是,随着新提案的提出,API不应损害JVM的安全性。此功能正在JDK14中进入较早的孵化器阶段,JDK15中提供了改进。
       密封类的预览版。密封类与接口一起限制其他类或接口可以扩展或实现它们。此功能的目标包括允许类或接口的开发者控制负责实现该代码,提供比访问修饰符更具声明性的方式来限制超类的使用,以及通过支持详尽的内容来支持模式匹配的未来方向。
       删除源代码并构建对Solaris/SPARC、Solaris/x64和Linux/SPARC端口的支持,这些端口在JDK14中已弃用,目的是在将来的版本中删除它们。许多项目和功能在开发中,如Valhalla、Loom和Panama都需要对CPU架构和操作系统特定的代码进行重大更改。放弃对Solaris和SPARC端口的支持将使OpenJDK社区的贡献者能够加速开发新功能,从而推动平台向前发展。近年来,Solaris和SPARC都已被Linux操作系统和英特尔处理器取代。
       记录是充当不可变数据的透明载体的类,在JDK14中作为早期预览版亮相后,将包含在JDK15中的第二个预览版本中。该计划的目标包括设计一个面向对象的构造,该构造表示值的简单聚合,帮助程序员专注于对不可变数据建模,而不是可扩展行为,自动实现数据驱动方法(如等值器和评估器),以及保留长期存在的Java原则(如名义类型和迁移兼容性)。记录可视为名义元组。
       基于爱德华兹曲线数字签名算法(EdDSA)的加密签名。EdDSA是一种现代椭圆曲线方案,与JDK中现有的签名方案相比具有优势。EdDSA将仅在SunEC提供程序中实现。与其他签名方案相比,EdDSA的安全性和性能有所提高,因此对其需求更为强烈,目前,它已在OpenSSL和BoringSSL等加密库中得到支持。
       通过替换java.net.datagram的基础实现,重新实现旧版DatagramSocketAPI。Socket和java.net.MulticastSocketAPI具有更简单、更现代的实现方式,即:1.易于调试和维护;2.与ProjectLoom中正在探索的虚拟线程一起使用。新计划是JDK增强建议353的后续行动,该提案重新实现旧版SocketAPI。java.net.datagram.Socket和java.net.MulticastSocket的当前实现可追溯到JDK1.0,而IPv6仍在开发中。因此,MulticastSocket的当前实现尝试以难以维护的方式协调IPv4和IPv6。

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

哈尔滨IT培训学校

       继JDK14中的个预览之后,第二个模式匹配预览。模式匹配允许程序中的通用逻辑(主要是从对象中的条件提取组件)可以更简洁地表达。Haskell和C#等语言已采用模式匹配来实现简洁和安全性。
       隐藏类。即不能由其他类的字节码直接使用的类,供在运行时生成类并通过反射间接使用它们的框架使用。隐藏类可以定义为访问控制嵌套的成员,并且可以独立于其他类进行卸载。该提案通过启用标准API来定义无法发现且具有有限生命周期的隐藏类,从而提高JVM上所有语言的效率。JDK内外的框架将能够动态生成类,而这些类可以定义隐藏类。基于JVM的许多语言都依赖于动态类生成,以实现灵活性和效率。该提案的目标包括:允许框架将类定义为框架的不可发现的实现细节,以便其他类不能将其链接,也不能通过反射发现;支持使用不可发现类扩展访问控制嵌套;并支持主动卸载不可发现类,因此框架可以灵活地定义尽可能多的类。另一个目标是弃用非标准APImisc.Unsafe::defineAnonymousClass,目的是在将来的版本中弃用。此外,Java语言不会因此建议而更改。
       根据提案,Z垃圾收集器(ZGC)将从实验版本过渡到产品中。ZGC初集成在2018年9月的JDK11中,是一个可扩展的低延迟垃圾回收器。ZGC是作为实验功能引入的,因为Java开发人员认为,这种规模和复杂性的功能应该谨慎且逐步地引入。自2018年以来,ZGC已增加了许多改进,从并发类卸载、取消使用未使用的内存、对类数据共享的支持到改进的NUMA感知。此外,大堆大小从4TB增加到16TB。支持的平台包括Linux、Windows和MacOS。
       文本块。这一功能在JDK14和JDK13中都已实现预览版。它跨越多行源代码,同时避免在常见情况下的转义序列,从而简化编写Java程序的任务。文本块是一个字符串文字,它避免了大多数转义序列,以可预测的方式自动格式化字符串,并根据需要为开发人员提供了对该格式的控制权。文本块建议的目标是提高Java程序中的字符串的可读性,这些字符串表示以非Java语言编写的代码。另一个目标是支持从字符串文本迁移,规定任何新构造都可以表达与字符串文本相同的字符串集,解释相同的转义序列,并且以与字符串文本相同的方式进行操作。OpenJDK开发人员希望添加转义序列来管理显式空白和换行控件。
       低暂停时间的垃圾收集器Shenandoah将从实践阶段推向生产。一年前,该功能特性被加入了JDK12中。
       删除Nashorn。该功能是2014年3月发布的JDK8的新特性,但此后没多久就被诸如GraalVM等技术淘汰。根据提案,OpenJDK15建议要求删除NashornAPI和用于调用Nashorn的jjs命令行工具。
       弃用RMI激活机制,这也是为了将来为这一功能移除做准备。事实上,自Java8以来,RMI激活机制一直作为是可选项而非必选项,这也被视为是RMI中过时的部分。当下,RMI的激活机制如果不弃用会造成维护负担。同时据了解,RMI的其他部分暂时不会被弃用。
       目前,JDK15的早期访问版本可以尝鲜:http://jdk.java.net/15/。继长期版本JDK11之后,JDK12/13/14以及即将发布的JDK15都将是一个短期版本。而下一个长期支持(LTS)版本将是JDK17,该版本预计于2021年9月发布。
领取试听课
每天限量名额,先到先得

尊重原创文章,转载请注明出处与链接:http://www.peixun360.com/1998/news/247523/违者必究! 以上就是哈尔滨IT培训学院 小编为您整理 Java15即将到来,新特性速览的全部内容。

温馨提示:提交留言后老师会第一时间与您联系!热线电话:400-035-8011