posts - 146,comments - 15,views - 13万

1.背景

Oracle与9月中旬正式宣布推出Java17,正如官方所说:

  • JDK17是最新的长期稳定支持的版本作为JDK11之后的下一个长期支持的版本;
  • 也是Spring Framework6与SpringBoot 3在运行时至少需要运行的JDK版本环境;
  • JDK17提供了数以千计的性能、稳定性和安全更新,以及14个JEP(JDK增强建议),用于帮助开发人员提高效率

 下面来简单地介绍一下其中主要的特性。

 

2.新特性说明

2.1.密封类转正

密封类(Sealed Classes)是 Java 15 引入的, Java 17 正式转正。

密封类可以对继承或者实现它们的类进行限制

比如抽象类 Person 只允许 Employee 和 Manager 继承。

public abstract sealed class Person
    permits Employee, Manager {

    //...
}

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

public final class Employee extends Person {
}

public non-sealed class Manager extends Person {
}

2.2.JDK内部元素强封装

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

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

2.3.macOS/AArch64 平台支持

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

2.4.标记删除Applet API

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

Java 9 的时候,Applet API 已经被标记为启用,Java 17 的时候终于标记为删除了。

2.5.删除RMI Activation

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

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

 

参考博文:

JavaGuide -- Java17来了!YYDS!

再见,Java8!Java17发布,堪称史上最快的JDK

posted on   人无名,则可专心练剑  阅读(2112)  评论(2编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示

目录导航