我对JDK15的简单理解
⼀、为什么要了解JDK15?
2020年9⽉15⽇,Oracle官⽅发布了JDK15版本,及时关注官⽅的更新动态,可以让我们在⽇常开发中更合理的选择更加优秀的⼯具⽅法,避免使⽤⼀些过时的或⼀些即将被删除类和⽅法,保障程序的健壮性、稳定性、可移植性。
⼆、JDK15都为我们带来了哪些东西?
JEP 339: Edwards-Curve 数字签名算法(EdDSA)
JEP 360: 密封类(预览)
JEP 371: 隐藏类
JEP 372: 删除Nashorn JavaScript引擎
JEP 373: 重新实现旧版DatagramSocket API
JEP 374: 禁⽤和弃⽤偏置锁定
JEP 375: instanceof的模式匹配(第⼆预览)
JEP 377: ZGC:可扩展的低延迟垃圾收集器
JEP 378: ⽂字块
JEP 379: Shenandoah:低暂停时间的垃圾收集器
JEP 381: 删除Solaris和SPARC端⼝
JEP 383: 外部存储器访问API(第⼆个孵化器)
JEP 384: Records(第⼆预览)
JEP 385: 弃⽤RMI激活以进⾏删除
JEP:JDK Enhancement Proposals ,JDK 特性的新增和修改建议。
三、具体说⼀说JDK15的特性。
1. JEP 339: Edwards-Curve 数字签名算法(EdDSA)
官⽅描述:
EdDSA是⼀种现代的椭圆曲线签名⽅案,与JDK中的现有签名⽅案相⽐,具有多个优点。
在相同的安全强度下,开发⽐现有的ECDSA实现(使⽤本机C代码)更好的性能的EdDSA平台⽆关的实现。例如,在安全性〜126位时使⽤Curve25519的EdDSA应该与在安全性〜128位时使⽤曲线secp256r1的ECDSA⼀样快。
假设平台在恒定时间内执⾏64位整数加/乘,请确保时序与秘密⽆关。另外,该实现将不会基于秘密分⽀。这些属性对于防⽌侧通道攻击⾮常有⽤。
简⽽⾔之:
Edwards-Curve 数字签名算法(EdDSA)实现加密签名功能。且⽐现有的JDK 中的签名安全性和性能更⾼。
2. JEP 360: 密封类(预览)
官⽅描述:
通过密封的类和接⼝增强Java编程语⾔。密封的类和接⼝限制可以扩展或实现它们的其他类或接⼝。通过将sealed修饰符应⽤于其声明来密封类。然后,在anyextends和implements⼦句之后,该permits⼦句指定允许扩展密封类的类。
简⽽⾔之:
限定接⼝的实现或⼦类,不是所有的类都能继承此类或实现此类。
注意:
sealed:隐含⼦类 permits : 许可证
jdk怎么使用non-sealed:隐含⾮受限⼦类
final:隐含⽆⼦类