JDK 15:Java 15中的新功能

随着Java 14于3月17日全面上市,继任者Java 15的开发工作将于2020年9月开始。到目前为止,已经计划对该发行版进行五项正式更改,最新的更改是隐藏类。先前的建议包括添加文本块,添加Z和Shenandoah垃圾收集器以及删除Nashorn JavaScript引擎。
所有这五个建议都针对Java开发工具包(JDK)15,这是下一版Java SE(标准版)的基础。截至2020年4月6日,文本块和Nashorn的删除已正式成为JDK 15的目标,而其他三个仍处于“拟定目标”阶段。
OpenJDK 15提案的详细信息:
隐藏的类,即不能被其他类的字节码直接使用的类,供在运行时生成类并通过反射间接使用它们的框架使用。可以将隐藏类定义为访问控制嵌套的成员并且可以独立于其他类进行卸载。该提案将通过启用标准API来定义无法发现且具有有限生命周期的隐藏类,从而提高JVM上所有语言的效率。JDK内部和外部的框架将能够动态生成可以代替定义隐藏类的类。基于JVM构建的许多语言都依靠动态类生成来提高灵活性和效率。该提案的目标包括:允许框架将类定义为框架的不可发现的实现细节,因此它们不能被其他类链接,也不能通过反射来发现;支持使用不可发现的类扩展访问控制嵌套;并支持积极卸载不可发现的类,因此,框架可以灵活地定义所需的数量。另一个目标是弃用非标准API, misc.Unsafe::defineAnonymousClass,目的是不建议在以后的版本中将其删除。另外,由于此提议,Java语言也不会更改。
根据该提议,Z垃圾收集器(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和用于调用Nashorn的jjs命令行工具。
可以在java.jdk.net上找到JDK 15的早期访问版本。根据Oracle六个月的发布节奏,JDK 15将是一个短期功能发布,支持六个月 。下一个长期支持(LTS)版本将获得几年的支持,它将是JDK 17,该版本将于2021年9月到货。当前的LTS版本是JDK 11,该版本于2018年9月发布。
最后,开发这么多年我也总结了一套学习Java的资料与面试题,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhaozihao594/article/details/105418991