博客
关于我
JDK15正式发布,新增功能预览!
阅读量:464 次
发布时间:2019-03-06

本文共 1364 字,大约阅读时间需要 4 分钟。

JDK 15发布新功能详解

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新功能说明

JDK 15提供了14项主要增强和改进,包含孵化器模块、3个预览功能、2个不推荐使用的功能以及2个删除功能。


1. EdDSA数字签名算法

EdDSA(Edwards-Curve数字签名算法)是JDK 15引入的新功能,提供了现代加密库中常见的数字签名方案。与现有签名方案相比,EdDSA具有更高的安全性和性能优势,是一个全新的功能。


2. 隐身类

隐身类功能有助于框架生成运行时类,允许动态扩展类行为,同时限制类的访问。通过反射访问隐藏类,可以减少框架内存占用,提升效率。这是一个重要的新功能。


3. 重新实现DatagramSocket API

旧版 java.net.DatagramSocketjava.net.MulticastSocket API已被重新实现,采用更简单、现代的方式提高了JDK的可维护性和稳定性。


4. ZGC功能转正

ZGC(Zebra GC)在JDK 11中首次作为预览功能引入,目标是减少GC停顿时间。通过JEP 377,ZGC已从预览功能转变为生产功能。


5. 文本块功能转正

文本块是JEP 355在2019年提出的功能,避免了大多数转义序列的需要,提供可预测的字符串格式化。借助JEP 378,文本块已成为Java语言的永久功能。


6. Shenandoah垃圾回收算法转正

Shenandoah垃圾回收从实验特性转变为产品特性。该算法通过与运行时Java线程同时进行的疏散工作,显著减少GC暂停时间,与堆大小无关。


7. 密封类(预览)

密封类和接口增强Java编程语言,限制超类和超接口的使用,提升代码的可控性和可维护性。


8. instanceof自动匹配模式(预览)

简化了对象类型检查流程。旧写法需先判断类型再转换,而新写法直接在条件判断中声明变量:

if (obj instanceof String s) {    // 代码逻辑} else {    // 类型不匹配处理}

9. Records Class(预览)

Records类在JDK 14中首次作为预览功能引入,使用record关键字创建常量类,简化了代码书写。旧写法需要手动实现equals()hashCode()toString()方法,而新写法一行代码即可完成。


10. 外部存储器访问API(预览)

通过提供一个API,允许Java程序安全有效地访问Java堆之外的外部内存。这是JDK 14的一个预览特性。


11. 其他功能

  • 移除Nashorn JavaScript引擎:已从JDK 15中移除。
  • 移除Solaris和SPARC端口:结束对这些平台的支持。
  • 不推荐的RMI激活去除:标记为不推荐使用。

参考与鸣谢

感谢码农小胖哥的技术支持,以及官方日志的详尽信息。

转载地址:http://ywwbz.baihongyu.com/

你可能感兴趣的文章
Notes on Paul Irish's "Things I learned from the jQuery source" casts
查看>>
Notification 使用详解(很全
查看>>
NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty()
查看>>
NotImplementedError: Could not run torchvision::nms
查看>>
nova基于ubs机制扩展scheduler-filter
查看>>
Now trying to drop the old temporary tablespace, the session hangs.
查看>>
nowcoder—Beauty of Trees
查看>>
np.arange()和np.linspace()绘制logistic回归图像时得到不同的结果?
查看>>
np.power的使用
查看>>
NPM 2FA双重认证的设置方法
查看>>
npm build报错Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin‘解决方法
查看>>
npm build报错Cannot find module ‘webpack‘解决方法
查看>>
npm ERR! ERESOLVE could not resolve报错
查看>>
npm ERR! fatal: unable to connect to github.com:
查看>>
npm ERR! Unexpected end of JSON input while parsing near '...on":"0.10.3","direc to'
查看>>
npm ERR! Unexpected end of JSON input while parsing near ‘...“:“^1.2.0“,“vue-html-‘ npm ERR! A comp
查看>>
npm error Missing script: “server“npm errornpm error Did you mean this?npm error npm run serve
查看>>
npm error MSB3428: 未能加载 Visual C++ 组件“VCBuild.exe”。要解决此问题,1) 安装
查看>>
npm install CERT_HAS_EXPIRED解决方法
查看>>
npm install digital envelope routines::unsupported解决方法
查看>>