JDK17主要特性
JDK 17,也被称为Java 17或Java Platform, Standard Edition 17,是Java编程语言的第十七个主要版本,由Oracle公司在2021年9月发布。Java 17是一个长期支持(LTS,Long-Term Support)版本,这意味着它将获得Oracle和其他供应商更长时间的支持和维护。
主要特性
- [306]严格浮点语义:废除了strictfp关键字在Java中的实际效果(尽管该关键字仍然保留在语法中)。在JDK 17及之后的版本中,无论是否使用strictfp关键字,所有的浮点操作都将严格执行IEEE 754标准。
- [356]伪随机数生成器增强:为伪随机数生成器(PRNG)提供新的接口类型和实现,提高了随机数生成的安全性和灵活性。
- [382]macOS渲染管道:Swing API现在可以使用新的Apple Metal加速渲染API给macOS,提高了图形渲染性能。
- [391]针对macOS/AArch64架构进行适配和优化。
- [398][将移除]Applet API: JDK9标记作废。
- [403]强封装JDK的内部API: JDK16的延续。
- [406]switch支持模式匹配(预览):通过switch表达式和语句的模式匹配,以及模式语言的扩展,增强Java编程语言。
- [407]移除RMI激活:JDK15中标记作废。
- [409]Sealed类(正式发布):Java 17将Sealed类从预览特性升级为正式特性,允许限制哪些其他类或接口可以扩展或实现一个特定的类或接口。
- [410]移除实验性的AOT和JIT编译器:JDK9添加的实验性的AOT编译器,JDK10添加的试验性的Graal 编译器。
- [411][将移除]安全管理器
- [412]FFM API(孵化):替代JNI,提供一个更简单、更安全的方式来调用本地函数和操作外部内存。JDK16的第一次孵化的外部链接,JDK16的第二次孵化的外部内存访问。
- [414]Vector API(第二次孵化)
- [415]反序列化上下文定义过滤器:允许开发人员在反序列化过程中对特定上下文中的对象进行自定义过滤,从而提高应用程序的安全性,并减少反序列化攻击的潜在风险。