本文共 1364 字,大约阅读时间需要 4 分钟。
JDK 15于2020年9月15日正式发布,带来了多项重要增强和改进。以下是本次发布的主要新功能说明。
JDK 15将是一个短期支持版本,仅维护6个月,直到2021年3月JDK 16发布此版本将停止维护。下一个长期支持版(LTS)计划于2022年9月发布,Java 17将是上一个LTS版本,历时3年发布一次,上一个LTS版本是2018年9月的JDK 11。
JDK 15提供了14项主要增强和改进,包含孵化器模块、3个预览功能、2个不推荐使用的功能以及2个删除功能。
EdDSA(Edwards-Curve数字签名算法)是JDK 15引入的新功能,提供了现代加密库中常见的数字签名方案。与现有签名方案相比,EdDSA具有更高的安全性和性能优势,是一个全新的功能。
隐身类功能有助于框架生成运行时类,允许动态扩展类行为,同时限制类的访问。通过反射访问隐藏类,可以减少框架内存占用,提升效率。这是一个重要的新功能。
旧版 java.net.DatagramSocket 和 java.net.MulticastSocket API已被重新实现,采用更简单、现代的方式提高了JDK的可维护性和稳定性。
ZGC(Zebra GC)在JDK 11中首次作为预览功能引入,目标是减少GC停顿时间。通过JEP 377,ZGC已从预览功能转变为生产功能。
文本块是JEP 355在2019年提出的功能,避免了大多数转义序列的需要,提供可预测的字符串格式化。借助JEP 378,文本块已成为Java语言的永久功能。
Shenandoah垃圾回收从实验特性转变为产品特性。该算法通过与运行时Java线程同时进行的疏散工作,显著减少GC暂停时间,与堆大小无关。
密封类和接口增强Java编程语言,限制超类和超接口的使用,提升代码的可控性和可维护性。
简化了对象类型检查流程。旧写法需先判断类型再转换,而新写法直接在条件判断中声明变量:
if (obj instanceof String s) { // 代码逻辑} else { // 类型不匹配处理} Records类在JDK 14中首次作为预览功能引入,使用record关键字创建常量类,简化了代码书写。旧写法需要手动实现equals()、hashCode()和toString()方法,而新写法一行代码即可完成。
通过提供一个API,允许Java程序安全有效地访问Java堆之外的外部内存。这是JDK 14的一个预览特性。
感谢码农小胖哥的技术支持,以及官方日志的详尽信息。
转载地址:http://ywwbz.baihongyu.com/