JDK 17 正式发布,Oracle 官宣免费提供!“新版任你发,我用JDK 8”或成历史?

2021年09月16日 00:23 48 次阅读 来源: 素文宅 作者: 路人甲
摘要 Oracle公司JDK 17正式发布,JDK 17属于长期支持(LTS)版本,也就是获得8年的技术支持,自2021年9月至2029年9月截止。JDK 17版本更新了很多比较实用的新特性,关于此版本的新特性,详细介绍和实际开发中的应用将在公众号Java精选中后续篇幅,这里就不在深入赘述了,对JDK 17新特性感兴趣的朋友可以留意后续文章的更新。特性介绍JDK 17更新了包括14个特性,具体如下表所示...

image.png

Oracle公司JDK 17正式发布,JDK 17属于长期支持(LTS)版本,也就是获得8年的技术支持,自2021年9月至2029年9月截止。

JDK 17版本更新了很多比较实用的新特性,关于此版本的新特性,详细介绍和实际开发中的应用将在公众号Java精选中后续篇幅,这里就不在深入赘述了,对JDK 17新特性感兴趣的朋友可以留意后续文章的更新。

特性介绍

JDK 17更新了包括14个特性,具体如下表所示: 

306:

Restore Always-Strict Floating-Point Semantics

356:

Enhanced Pseudo-Random Number Generators

382:

New macOS Rendering Pipeline

391:

macOS/AArch64 Port

398:

Deprecate the Applet API for Removal

403:

Strongly Encapsulate JDK Internals

406:

Pattern Matching for switch (Preview)

407:

Remove RMI Activation

409:

Sealed Classes

410:

Remove the Experimental AOT and JIT Compiler

411:

Deprecate the Security Manager for Removal

412:

Foreign Function & Memory API (Incubator)

414:

Vector API (Second Incubator)

415:

Context-Specific Deserialization Filters

Restore Always-StrictFloating-Point Semantics

恢复始终严格模式(Always-Strict)的浮点语义

EnhancedPseudo-Random Number Generators

增强型伪随机数生成器

New macOS RenderingPipeline

新增macOS渲染管道

macOS/AArch64 Port

支持将JDK移植到macOS或AArch64

Deprecate the AppletAPI for Removal

弃用待移除的Applet API

注:JDK 9中的JEP 289先前已弃用Applet API,但并未将其删除。

Strongly EncapsulateJDK Internals

强封装JDK内部API

Pattern Matching forswitch (Preview)

switch模式匹配进入预览(Preview)阶段

Remove RMI Activation

移除RMI(远程方法调用)激活机制

Sealed Classes

密封类

注:密封类是由JEP 360提出的,并在JDK 15中作为预览功能提供。它们由JEP 397再次提出并进行了改进,并作为预览功能在JDK 16中提供。该JEP建议在JDK17中完成密封类,与JDK 16没有任何变化。

Remove theExperimental AOT and JIT Compiler

移除实验性AOT和JIT编译器

Deprecate theSecurity Manager for Removal

弃用待移除的安全管理器(Security Manager)

注:弃用安全管理器,在后续版本中移除。安全管理器可追溯到Java 1.0。多年来,它一直不是保护客户端Java代码的主要手段,也很少用于保护服务器端代码。为了推动Java向前发展,Oracle打算弃用安全管理器,以便与旧Applet API(JEP 398)一起删除。

Foreign Function& Memory API (Incubator)

外部函数和内存API(孵化器)孵化阶段

注:Java程序可以通过该API与Java运行时之外的代码和数据进行互操作。通过有效调用外部函数(即JVM之外的代码),以及安全地访问外部内存(即不由JVM管理的内存),API使Java程序能够调用本地库和处理本地数据,而没有JNI。[关于JDK17新特性开发应用,关注公众号Java精选,后续文章更新]

Vector API (SecondIncubator)

Vector API(第二孵化器)第二孵化阶段

注:引入一个API来表达向量计算,这些计算在运行时可靠地编译为支持的CPU架构上的最佳向量指令,从而实现优于等效标量计算的性能。

Context-SpecificDeserialization Filters

上下文特定的反序列化过滤器

注:允许应用程序通过JVM范围的过滤器工厂配置特定于上下文和动态选择的反序列化过滤器,该工厂被调用以为每个单独的反序列化操作选择一个过滤器。[关于JDK17新特性开发应用,关注公众号Java精选,后续文章更新]

Free Java License

根据Oracle官方发布的最新Free Java License,Oracle JDK 可以免费用于生产环境。Free Java License 大致摘要:

1)Oracle JDK免费提供包括所有季度安全更新,含商业和生产用途。

2)新许可证属于“Oracle 免费条款和条件”(NFTC许可证。此Oracle JDK许可证允许所有用户免费使用,甚至可以用于商业和生产用途。不收取费用的前提下,允许再分发。

3)开发人员和组织目前可轻松下载、使用、共享和重新分发Oracle JDK。

4)Oracle将从JDK 17开始提供这些免费版本和更新,并在下一个LTS版本发布之后继续提供整整一年。需要注意的是以前的版本不受此更改的影响。

5)Oracle将继续按照自Java 9以来的相同版本和时间表提供GPL下的Oracle OpenJDK版本。

JDK17下载地址:https://jdk.java.net/17/

JDK17技术文档:https://docs.oracle.com/en/java/javase/17/index.html

Spring支持

Spring官方曾宣布Spring Framework 6.0和Spring Boot 3.0将基于JDK 17版本,预计2022年,下半年发布Spring Framework 6.0正式候选(RC)版本。

作为开发人员的你或者说你们公司,目前用的是JDK7还是JDK8呢?欢迎各位下方留言。

~阅读全文-人机检测~

关注下方微信公众号“Java精选”(w_z90110),回复关键词领取资料:如Mysql、Hadoop、Dubbo、Spring Boot等,免费领取视频教程、资料文档和项目源码。微信搜索小程序“Java精选面试题”,内涵3000+道Java面试题!

Java精选专注程序员推送一些Java开发知识,包括基础知识、各大流行框架(Mybatis、Spring、Spring Boot等)、大数据技术(Storm、Hadoop、MapReduce、Spark等)、数据库(Mysql、Oracle、NoSQL等)、算法与数据结构、面试专题、面试技巧经验、职业规划以及优质开源项目等。其中一部分由小编总结整理,另一部分来源于网络上优质资源,希望对大家的学习和工作有所帮助。
还可以输入136 讨论区:
评 论