JAVA15 重要新特性梳理

JDK15引入了一系列新特性,包括Edwards-Curve Digital Signature Algorithm (EdDSA),提供更安全的加密签名;密封类和接口限制了继承,增强了类型安全;隐藏类使得动态生成类的生命周期和可见性可控;ZGC成为正式版本,提升垃圾回收性能;以及文本块优化了多行字符串的编写。此外,Records在JDK15中继续作为预览特性,简化了类的定义。JDK15将在6个月内得到支持,建议开发者关注其长期支持版本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

339:Edwards-Curve Digital Signature Algorithm (EdDSA)

Edwards-Curve 数据签名算法(EdDSA),一种根据 RFC 8032 规范所描述的 Edwards-Curve 数字签名算法(EdDSA)实现加密签名,实现了一种 RFC 8032 标准化方案。

EdDSA 是一种现代的椭圆曲线签名方案,与 JDK 中现有的签名方案相比,它有很多优势。

360:Sealed Classes (Preview)

JDK15引入了sealed classes and interfaces, 用于限定实现类,限定父类的使用,用来增强 Java 编程语言,防止其他类或接口扩展或实现它们。

package com.example.geometry;

public abstract sealed class Shape
    permits Circle, Rectangle, Square {...}

public final class Circle extends Shape {...}

public sealed class Rectangle extends Shape 
    permits TransparentRectangle, FilledRectangle {...}
public final class TransparentRectangle extends Rectangle {...}
public final class FilledRectangle extends Rectangle {...}

public non-sealed class Square extends Shape {...}

​371:Hidden Classes​

通常我们在使用大型的框架或者lambda表达式的时候,会动态生成很多类。但是不幸的是标准的定义类的API:ClassLoader::defineClass 和 Lookup::defineClass不能够区分出这些类是动态生成(运行时生成)的还是静态生成(编译生成)的。

一般来说动态生成的类生命周期更短,并且其可见性要更低。但是现有的JDK并没有这个功能。

所有有了Hidden Classes的提案,通过Hidden Classes,不管是JDK还是JDK外部的框架,在生成动态类的时候都可以定义为Hidden Classes,这样可以更加有效的控制这些动态生成类的生命周期和可见性。

377:ZGC: A Scalable Low-Latency Garbage Collector

Z Garbage Collector(ZGC)是在JAVA 11中引入的垃圾回收器,但一直都是预览版本,在JDK 15中,终于要上线了。

ZGC是一个重新设计的并发的垃圾回收器,可以极大的提升GC的性能。

378:Text Blocks

Text Blocks在JDK13被作为preview feature引入,在JDK14作为Second Preview,在JDK15变为最终版。

文本块是一种多行字符串文字,它避免了大多数转义序列的需要,以一种可预测的方式自动设置字符串的格式。

Java 13 之前:

String html = "<html>\n" +
              "    <body>\n" +
              "        <p>Hello, world!</p>\n" +
              "    </body>\n" +
              "</html>\n";

Java 13 +:

String html = """
              <html>
                  <body>
                      <p>Hello, world!</p>
                  </body>
              </html>
              """;

384:Records (Second Preview)

Records在JDK14被作为preview引入,在JDK15处于Second Preview

Records 在某些场合可以干掉 Lombok 的存在,能自动生成了类构造器、toString()、hashCode()、equals(),以及类似 getter 的变量访问方法。

使用方式:

public record Student(String name, int id, int age) {}

JDK 15 并不是一个长期支持的版本,只支持 6 个月到 2021 年 3 月,上一个长期支持版本还是 JDK 11,所以千万不要把非长期支持版本用在生产。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值