是的!JDK 17 来啦!

在这里插入图片描述
上个周末我发了一篇名为:Spring 官宣,干掉 Spring 5.3.x! 的技术快报,这篇文章主要介绍了 Spring Framework 6 和 Spring Boot 3 的最新消息。
我在文中提到说:Spring Framework 6 和 Spring Boot 3 在运行时至少需要 JDK 17 。
就在前天,Oracle 正式宣布推出 Java 17。是的!它来了!
如官方所说:

  • JDK 17 将取代 JDK 11 作为下一个长期支持的 JDK 版本。
  • Java 17 提供了数以千计的性能、稳定性和安全更新,以及 14 个 JEP(JDK 增强建议),进一步改进了 Java 语言和平台,帮助开发人员提高工作效率。

在这里插入图片描述
即使你暂时用不到 Java17,我还是建议你一定要多多关注技术最新动态。

目前,国内大部分公司还是坚守 Java8 ,我觉得项目有条件的话,可以尝试使用一下新版本的 JDK。

可能是因为工作比较繁忙的原因,我发现很多人对“新技术”都有一点抵制,大有一种死守 Java8 不放的感觉。果然专一,实属好男人!

其实,这几年 Java 开发最常用的框架还是 Spring,它几乎没有什么大改。包括,Spring Boot 出来之后也只是让我们使用起来更加简单,学习成本非常低。

你们去看看前端框架更新换代的速度,就知道什么叫做变态了!

说实话。我非常期待这次更新。云原生时代 Java 正在面临前所未有的挑战,是继续辉煌还是成为过去,且看 Java 最新的努力尝试…

一位读者说的挺好 : “学不学,用不用,搁一边。至少得知道趋势是啥!”。

新特性概览

在这里插入图片描述

根据官方介绍, Java17 共有 14 个 JEP:

  • 306:恢复始终严格的浮点语义
  • 356:增强型伪随机数发生器
  • 382:新的 macOS 渲染管道
  • 391:macOS/AArch64 平台支持
  • 398:标记删除的 Applet API
  • 403:强封装 JDK 的内部 API
  • 406:Switch 模式匹配(预览)
  • 407:删除 RMI Activation
  • 409:密封类
  • 410:删除实验性 AOT 和 JIT 编译器
  • 411:弃用即将删除安全管理器
  • 412:外部函数和内存 API(孵化器)
  • 414:Vector API(第二次进行特性孵化)
  • 415:特定于上下文的反序列化过滤器
    在这里插入图片描述
    关于新特性和预览特性的详细介绍可以查看 Java17 官方文档介绍。

密封类转正

密封类(Sealed Classes)是 Java 15 引入的, Java 17 正式转正。
密封类可以对继承或者实现它们的类进行限制。
比如抽象类 Person 只允许 Employee 和 Manager 继承。

public abstract sealed class Person
    permits Employee, Manager {

    //...
}

另外,任何扩展密封类的类本身都必须声明为 sealed、non-sealed 或 final。

public final class Employee extends Person {
}

public non-sealed class Manager extends Person {
}

在这里插入图片描述

JDK 内部元素强封装

很多程序员以损害安全性和可维护性的方式使用 JDK 的内部元素比如一些非public类、方法和字段。

为了继续提高 JDK 的安全性和可维护性,默认强封装 JDK 的所有内部元素,从而限制对它们的访问,除了关键的内部 API 如sun.misc.Unsafe。

macOS/AArch64 平台支持

由于 JDK 在 macOS/AArch64 的广泛需求,Oracle 宣布将 JDK 移植到 macOS/AArch64 平台,增加了 Apple 去年发布的新 CPU 系列 (M1) 的支持。

标记删除 Applet API

Applet API 提供了一种将 Java AWT/Swing 控件嵌入到浏览器网页中的方法。不过,目前 Applet 已经被淘汰。大部分人应该和我一样,压根就没有用过 Applet
Java 9 的时候,Applet API 已经被标记为启用,Java 17 的时候终于标记为删除了。

删除 RMI Activation

RMI 即 Remote Method Invocation ,其为 Java 提供了远程方法调用的能力,不过,比较鸡肋,基本不会用到。RMI Activation 为激活分布式对象提供支持,不过,一般也不会用到。

Java 15 的时候, RMI Activation 已经被弃用,Java 17 的时候终于被删除了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Monster_起飞

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值