一文总结Java\JDK 17发布的新特性

简介: JDK 17已经于2021年3月16日如期发布。本文介绍JDK 17新特性。JDK 17于2021年9月14日正式发布(General-Availability Release)。JDK 17将是大多数供应商的长期支持(LMS)版本。上一个LTS版本是JDK 11。 本文总结了JDK 17发布的新特性。

发布版本说明

根据发布的规划,这次发布的 JDK 17 将是一个长期支持版(LTS 版)。LTS 版每 3 年发布一个,上一次长期支持版是 18 年 9 月发布的 JDK 11。

JDK 17是Java SE平台版本17的开源参考实现,由JSR 392在JCP(Java Community Process)指定。

安装包下载

主要分为OpenJDK版本和Oracle版本,下载地址如下:

上述版本,如果是个人学习用途,则差异不大。但如果是用于商业用途,则需要仔细看好相关的授权。Oracle JDK根据二进制代码许可协议获得许可,而OpenJDK根据GPL v2许可获得许可。

更多有关Java的基本知识,可以参阅《Java核心编程》这本书,描述的非常详细。

JDK 17 新特性说明

JEP 406:switch的模式匹配(预览)(JDK-8213076)

specification

通过switch表达式和语句的模式匹配,以及模式语言的扩展,增强Java编程语言。将模式匹配扩展到switch允许对表达式进行测试,每个模式都有特定的操作,以便可以简洁而安全地表达复杂的面向数据的查询。

有关更多详细信息,请参见JEP 406

JEP 409:密封类(JDK-8260514)

specification

密封类(Sealed Class)已添加到Java语言中。密封类和接口限制了哪些其他类或接口可以扩展或实现它们。

密封类由JEP 360并在JDK 15中作为预览功能交付。它们再次被提出,并进行了改进,由JEP 397并在JDK 16中作为预览功能提供。现在,在JDK 17中,密封类正在最终确定,与JDK 16没有任何更改。

有关更多详细信息,请参见JEP 409

JEP 382:新的macOS渲染管道(JDK-8238361)

client-libs/2d

Swing API用于渲染的Java 2D API现在可以使用新的Apple Metal加速渲染API 给macOS。

目前默认情况下,这是禁用的,因此渲染仍然使用OpenGL API,这些API被Apple弃用,但仍然可用和支持。

要启用金属,应用程序应通过设置系统属性指定其使用:

-Dsun.java2d.metal=true

Metal或OpenGL的使用对应用程序是透明的,因为这是内部实现的区别,对Java API没有影响。Metal管

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值