JAVA17新特性

2022 年 7 月底,甲骨文正式停止对Java SE 7的扩展支持,一个有着近 11 年历史的 Java 标准版本迎来生命周期结束。
目前最新版本的 Java18 于今年 3 月正式发布,并将于 2022 年 9 月停止更新。现在还提供支持的长期支持版本包括 Java 8、Java 11 和 Java 17,它们各自的支持结束时间分别为 2030 年 12 月、2026 年 9 月和 2029 年 9 月。

一 . Java 17

Java 8 ,可以说是一个里程碑的版本,提供了很多实打实有用的新特性,无论的Lambda表达式、Stream流、Optional还是新时间日期API等,都改变了开发者的编程习惯,它的支持结束时间为30年12月也可见其地位。
同样大家可以发现,Java 17 也是一个长期支持版本,那其是否可代替Java 8、Java 11 两个LTS成为生产常用版本呢,我们看一下它的新特性。

1. Java 17 新特性

  • 306:恢复始终严格的浮点语义

  • 356:增强型伪随机数发生器

  • 382:新的 macOS 渲染管道

  • 391:macOS/AArch64 端口

  • 398:弃用即将删除的 Applet API

  • 403:强封装JDK的内部API

  • 406:Switch模式匹配(预览)

  • 407:删除 RMI 激活

  • 409:密封类

  • 410:删除实验性 AOT 和 JIT 编译器

  • 411:弃用即将删除安全管理器

  • 412:外部函数和内存 API(孵化器)

  • 414:Vector API(第二次进行特性孵化)

  • 415:特定于上下文的反序列化过滤器

1)、409密封类
//类 Shape 被关键字 sealed 修饰,表明它是一个密封类。
//这个密封类必须要指定它被哪些类继承
public abstract sealed class Shape permits Circle{}

//Circle 类必须用 final 关键字修饰,表明它不能再被其他类继承了
public final class Circle extends Shape {}
2)、增强型伪随机数生成器

Java 17为伪随机数生成器(PRNG)提供了新的接口类型和实现。它引入了一个名为RandomGenerator的新接口。该接口的目标是为所有现有和新的PRNG提供统一的API。

RandomGenerator提供名为ints、longs、doubles、nextBoolean、nextInt、nextLong、nextDouble和nextFloat的方法,以及它们当前的所有参数变化。以下是提供的四个新的专用随机发生器接口:

  • SplittableRandomGenerator
  • JumpableRandomGenerator
  • LeapableRandomGenerator
  • ArbitrarilyJumpableRandomGenerator

此功能的目标是:

  • 使各种PRNG算法更容易在应用中互换使用。
  • 通过提供PRNG对象流,更好地支持基于流的编程。
  • 消除现有PRNG类中的代码重复。
  • 小心地保留java.util.Random
3)、为 switch 支持模式匹配。
		switch (o) {
            case Integer i -> String.format("int %d", i);
            case Long l    -> String.format("long %d", l);
            case Double d  -> String.format("double %f", d);
            case String s  -> String.format("String %s", s);
            default        -> o.toString();
        };

未完

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值