Java情报站:Java 15的新功能
2023-04-03 15:04:58
随着 Java Java将于2020年9月15日在3月17日全面上市 15后续产品。到目前为止,这个版本已经计划好了了八次正式变更。5月初增加了三个建议,包括取代旧的DatagramSocketet API,为instanceof 操作员提供模式匹配的第二个预览,禁用和弃用偏置锁定。让我们了解一下目前收集到的信息java15的新功能。
截至5月5日,所有这三个新提案都在“对目标提出建议”阶段。之前的五项提案已正式成为Java开发工具包(JDK)15的目标,这是下一版Java SE基础(标准版)。在在9月正式上市之前,将在6月和7月缩减,然后在8月发布两个候选版本。
我们通过信息和官方网站获取信息OpenJDK 提案的详细信息:
使用起来更简单,取而代之的是更现代的实现方式java.net.datagram.Socket 和 java.net.MulticastSocketAPI 从而重新实现旧的DatagramSocketet API,Projecttt(1)易于调试和维护(2) 在Loom中正在探索的虚拟线程。新计划是对JDK增强建议的后续工作重新实现了旧的Socketet 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已集成 JDK于2018年9月发布 在11中,是一种可扩展的低延迟垃圾回收器。ZGC的引入是一种实验功能,因为Java的开发人员决定谨慎而逐步地引入这种大小和复杂的功能。从那时起,从并发卸载、未使用内存的未提交、对数据共享的支持,到改进的NUMA感知和多线程堆预触,增加了许多改进。另外,最大的大小已经从4岁开始了 TB增加到16 TB。支持的平台包括Linux、Windows和MacOS。
文本块,在JDK 14和JDK 13中均已预览,通过简化字符串,表示跨越多行源代码,简化编写在常见情况下,Java程序的任务是避免转义序列。文本块是一种多行字符串文本,避免了大多数转义序列的需要,以可预测的方式自动设置字符串格式,并在需要时为开发人员提供控制。文本块建议的目标是提高Java程序中字符串的可读性,表示用非Java语言编写的代码。另一个目标是表达与字符串文本相同的字符串集,解释相同的转义序列,并以与字符串文本相同的方式操作,以支持字符串文本的迁移。
暂停时间的垃圾收集器将成为生产特征和移动实验阶段。一年前就集成了JDK中。
Nashorn的移除:于2014年3月JDK 8中首次亮相,但从那以后就已经被诸如了淘汰GralVM等技术。OpenJDK 15提案要求删除Nashornn API和jjs。用于调用Nashorn的命令行工具。
可以在java.jdk.在net上找到JDK早期访问版本15。根据六个月的Oracle发布节奏,JDK 15将是支持六个月的短期功能发布。下一个长期支持(LTS)版本将得到几年的支持,这将是JDK 这个版本将于2021年9月到货。目前的LTS版本是JDK 本版于2018年9月发布。
作为一个java学习者和爱好者,每次java新版本的发布给我们带来了一些难以形容的影响,包括优缺点、惊喜和失望。无论如何,我希望java的新版本越来越完美,功能越来越强大,细节处理也越来越好。