JDK的版本迭代(JDK9 - JDK24)持续更新中

2024-08-21 06:12

本文主要是介绍JDK的版本迭代(JDK9 - JDK24)持续更新中,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1. 发布时间

发行版本

发行时间

备注

Java 1.0

1996.01.23

Sun公司发布了Java的第一个开发工具包

Java 5.0

2004.09.30

①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME

Java 8.0

2014.03.18

此版本是继Java 5.0以来变化最大的版本。是长期支持版本(LTS)

Java 9.0

2017.09.22

此版本开始,每半年更新一次

Java 10.0

2018.03.21

Java 11.0

2018.09.25

JDK安装包取消独立JRE安装包,是长期支持版本(LTS)

Java 12.02019/03/19
Java 13.02019/09/17
Java 14.02020/03/17
Java 15.02020/09/15
Java 16.02021/03/16
Java 17.02021/09/14
Java 18.02022/03/22
Java 19.02022/09/20
Java 20.02023/03/21
Java 21.02023/09/19
Java 22.02024/03/19
Java 23.0in development
Java 24.0in development
规划中

 2. 版本说明

JDK7

        1. 自动资源管理;

        2. 改进的通用实例创建类型推断;

        3. 数字字面量下划线支持;

        4. switch中使用string;

        5. 二进制字面量;

        6. 简化可变参数方法调用;

        7. 引入Java NIO.2开发包

JDK8

  1. 接口的默认方法

  2. Lambda 表达式

  3. 函数式接口 

  4. 方法与构造函数引用

  5. Lambda 作用域

  6. 访问局部变量

  7. 访问对象字段与静态变量

  8. 访问接口的默认方法 

  9. Date API 

  10. Annotation 注解

JDK 9

JDK 9 版本说明地址

        1. 模块化系统

        2. jShell命令

        3. 多版本兼容jar包

        4. 接口的私有方法

        5. 钻石操作符的使用升级

        6. 语法改进:try语句

        7. 下划线使用限制

        8. String存储结构变更

        9. 便利的集合特性:of()

        10. 增强的Stream API

        11. 多分辨率图像 API

        12. 全新的HTTP客户端API

        13. Deprecated的相关API

        14. 智能Java编译工具

        15. 统一的JVM日志系统

        16. javadoc的HTML 5支持

        17. Javascript引擎升级:Nashorn

        18. java的动态编译器

JDK10

JDK 10 版本说明地址

        1. JEP286,var 局部变量类型推断。

        2. JEP296,将原来用 Mercurial 管理的众多 JDK 仓库代码,合并到一个仓库中,简化开发和管理过程。

        3. JEP304,统一的垃圾回收接口。

        4. EP307,G1 垃圾回收器的并行完整垃圾回收,实现并行性来改善最坏情况下的延迟。

        5. JEP310,应用程序类数据 (AppCDS) 共享,通过跨进程共享通用类元数据来减少内存占用空间,和减少启动时间。

        6. JEP312,ThreadLocal 握手交互。在不进入到全局 JVM 安全点 (Safepoint) 的情况下,对线程执行回调。优化可以只停止单个线程,而不是停全部线程或一个都不停。

        7. JEP313,移除 JDK 中附带的 javah 工具。可以使用 javac -h 代替。

        8. JEP314,使用附加的 Unicode 语言标记扩展。

        9. JEP317,能将堆内存占用分配给用户指定的备用内存设备。

        10. JEP317,使用 Graal 基于 Java 的编译器,可以预先把 Java 代码编译成本地代码来提升效能。

        11. JEP318,在 OpenJDK 中提供一组默认的根证书颁发机构证书。开源目前 Oracle 提供的的 Java SE 的根证书,这样 OpenJDK 对开发人员使用起来更方便。

        12. JEP322,基于时间定义的发布版本,即上述提到的发布周期。版本号为\$FEATURE.\$INTERIM.\$UPDATE.\$PATCH,分别是大版本,中间版本,升级包和补丁版本。

JDK11

JDK 11 版本说明地址

        1. 181:Nest-Based访问控制

        2. 309:动态类文件常量

        3. 315:改善Aarch64 intrinsic

        4. 318:无操作垃圾收集器

        5. 320:消除Java EE和CORBA模块

        6. 321:HTTP客户端(标准)

        7. 323:局部变量的语法λ参数

        8. 324:Curve25519和Curve448关键协议

        9. 327:Unicode 10

        10. 328:飞行记录器

        11. 329:ChaCha20和Poly1305加密算法

        12. 330:发射一列纵队源代码程序

        13. 331:低开销堆分析

        14. 332:传输层安全性(Transport Layer Security,TLS)1.3

        15. 333:动作:一个可伸缩的低延迟垃圾收集器 (实验)

        16. 335:反对Nashorn JavaScript引擎

        17. 336:反对Pack200工具和API

JDK12

JDK 12 版本说明地址

        1. 189:Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) 低暂停时间的GC

        2. 230: Microbenchmark Suite 微基准测试套件

        3. 325: Switch Expressions (Preview) switch表达式

        4. 334: JVM Constants API  JVM常量API

        5. 340: One AArch64 Port, Not Two 只保留一个AArch64实现

        6. 341: Default CDS Archives 默认类数据共享归档文件

        7. 344: Abortable Mixed Collections for G1 可中止的G1 Mixed GC

        8. 346: Promptly Return Unused Committed Memory from G1 G1及时返回未使用的已分配内存

JDK13

JDK 13 版本说明

        1. 350: Dynamic CDS Archives 动态CDS档案

        2. 351: ZGC: Uncommit Unused Memory ZGC:取消使用未使用的内存

        3. 353: Reimplement the Legacy Socket API 重新实现旧版套接字API

        4. 354: Switch Expressions (Preview) switch表达式(预览)

        5. 355: Text Blocks (Preview) 文本块(预览)

JDK14

JDK 14 版本说明

        1. 305: Pattern Matching for instanceof (Preview) instanceof的模式匹配

        2. 343: Packaging Tool (Incubator) 打包工具

        3. 345: NUMA-Aware Memory Allocation for G1 G1的NUMA-Aware内存分配

        4. 349: JFR Event Streaming JFR事件流

        5. 352: Non-Volatile Mapped Byte Buffers 非易失性映射字节缓冲区

        6. 358: Helpful NullPointerExceptions 实用的NullPointerExceptions

        7. 359: Records (Preview)

        8. 361: Switch Expressions (Standard) Switch表达式

        9. 362: Deprecate the Solaris and SPARC Ports 弃用Solaris和SPARC端口

        10. 363: Remove the Concurrent Mark Sweep (CMS) Garbage Collector 删除并发标记扫描(CMS)垃圾回收器

        11. 364: ZGC on macOS

        12. 365: ZGC on Windows

        13. 366: Deprecate the ParallelScavenge + SerialOld GC Combination 弃用ParallelScavenge + SerialOld GC组合

        14. 367: Remove the Pack200 Tools and API 删除Pack200工具和API

        15. 368: Text Blocks (Second Preview) 文本块

        16. 370: Foreign-Memory Access API (Incubator) 外部存储器访问API

JDK15

JDK 15 版本说明

        1. 339: Edwards-Curve Digital Signature Algorithm (EdDSA) EdDSA 数字签名算法

        2. 360: Sealed Classes (Preview) 密封类(预览)

        3. 371: Hidden Classes 隐藏类

        4. 372: Remove the Nashorn JavaScript Engine 移除 Nashorn JavaScript 引擎

        5. 373: Reimplement the Legacy DatagramSocket API 重新实现 Legacy DatagramSocket API

        6. 374: Disable and Deprecate Biased Locking 禁用偏向锁定

        7. 375: Pattern Matching for instanceof (Second Preview) instanceof 模式匹配(第二次预览)

        8. 377: ZGC: A Scalable Low-Latency Garbage Collector ZGC:一个可扩展的低延迟垃圾收集器

        9. 378: Text Blocks 文本块

        10. 379: Shenandoah: A Low-Pause-Time Garbage Collector Shenandoah:低暂停时间垃圾收集器

        11. 381: Remove the Solaris and SPARC Ports 移除 Solaris 和 SPARC 端口

        12. 383: Foreign-Memory Access API (Second Incubator) 外部存储器访问 API(第二次孵化版)

        13. 384: Records (Second Preview) Records(第二次预览)

        14. 385: Deprecate RMI Activation for Removal 废弃 RMI 激活机制

JDK16

JDK 16 版本说明

    1. 338: Vector API (Incubator) Vector API(孵化器)

    2. 347: Enable C++14 Language Features JDK C++的源码中允许使用C++14的语言特性

    3. 357: Migrate from Mercurial to Git OpenJDK源码的版本控制从Mercurial (hg) 迁移到git

    4. 369: Migrate to GitHub OpenJDK源码的版本控制迁移到github上

    5. 380: Unix-Domain Socket Channels Unix域套接字通道

    6. 386: Alpine Linux Port 将glibc的jdk移植到使用musl的alpine linux上

    7. 387: Elastic Metaspace 弹性元空间

    8. 388: Windows/AArch64 Port 移植JDK到Windows/AArch64

    9. 389: Foreign Linker API (Incubator) 提供jdk.incubator.foreign来简化native code的调用

    10. 390: Warnings for Value-Based Classes 提供基于值的类的警告

    11. 392: Packaging Tool jpackage打包工具转正

    12. 393: Foreign-Memory Access API (Third Incubator)

    13. 394: Pattern Matching for instanceof Instanceof的模式匹配转正

    14. 395: Records Records转正

    15. 396: Strongly Encapsulate JDK Internals by Default 默认情况下,封装了JDK内部构件

    16. 397: Sealed Classes (Second Preview) 密封类

JDK17

JDK 17 版本说明

    1. 306: Restore Always-Strict Floating-Point Semantics 恢复始终严格的浮点语义

    2. 356: Enhanced Pseudo-Random Number Generators 增强型伪随机数生成器

    3. 382: New macOS Rendering Pipeline 新的macOS渲染管道

    4. 391: macOS/AArch64 Port macOS/AArch64端口

    5. 398: Deprecate the Applet API for Removal 弃用Applet API后续将进行删除

    6. 403: Strongly Encapsulate JDK Internals 强封装JDK的内部API

    7. 406: Pattern Matching for switch (Preview) switch模式匹配(预览)

    8. 407: Remove RMI Activation 删除RMI激活机制

    9. 409: Sealed Classes 密封类转正

    10. 410: Remove the Experimental AOT and JIT Compiler 删除实验性的AOT和JIT编译器

    11. 411: Deprecate the Security Manager for Removal 弃用即将删除的安全管理器

    12. 412: Foreign Function & Memory API (Incubator) 外部函数和内存API(孵化特性)

    13. 414: Vector API (Second Incubator) Vector API(第二次孵化特性)

    14. 415: Context-Specific Deserialization Filters 上下文特定的反序列化过滤器

JDK18

JDK 18 版本说明

    1. 400: UTF-8 by Default 默认为UTF-8

    2. 408: Simple Web Server 简单的Web服务器

    3. 413: Code Snippets in Java API Documentation Java API文档中的代码片段

    4. 416: Reimplement Core Reflection with Method Handles 用方法句柄重新实现核心反射

    5. 417: Vector API (Third Incubator) Vector API(第三个孵化器)

    6. 418: Internet-Address Resolution SPI internet地址解析SPI

    7. 419: Foreign Function & Memory API (Second Incubator) 外部函数与内存API(第二孵化器)

    8. 420: Pattern Matching for switch (Second Preview) 开关模式匹配(第二次预览)

    9. 421: Deprecate Finalization for Removal 不赞成删除最终化

JDK19

JDK 19 版本说明

    1. 405: Record Patterns (Preview) 记录模式(预览)

    2. 422: Linux/RISC-V Port Linux / RISC-V端口

    3. 424: Foreign Function & Memory API (Preview) 外部函数和内存API(预览)

    4. 425: Virtual Threads (Preview) 虚拟线程(预览版)

    5. 426: Vector API (Fourth Incubator) Vector API(第四个孵化器)

    6. 427: Pattern Matching for switch (Third Preview) 开关模式匹配(第三次预览)

    7. 428: Structured Concurrency (Incubator) 结构化并发(孵化器)

JDK20

JDK 20 版本说明

    1. 429: Scoped Values (Incubator) 范围值(孵化器)

    2. 432: Record Patterns (Second Preview) 记录模式(第二次预览)

    3. 433: Pattern Matching for switch (Fourth Preview) 开关模式匹配(第四次预览)

    4. 434: Foreign Function & Memory API (Second Preview) 外部函数和内存API(第二次预览)

    5. 436: Virtual Threads (Second Preview) 虚拟线程(第二次预览版)

    6. 437: Structured Concurrency (Second Incubator) 结构化并发(第二个孵化器)

    7. 438: Vector API (Fifth Incubator) 载体API(第五孵化器)

JDK21


JDK 21 版本说明

    1. 430: String Templates (Preview) 字符串模板(预览)

    2. 431: Sequenced Collections 顺序收藏

    3. 439: Generational ZGC 一代ZGC

    4. 440: Record Patterns 记录图形

    5. 441: Pattern Matching for switch 开关的模式匹配

    6. 442: Foreign Function & Memory API (Third Preview) 外部函数和内存API(第三预览版)

    7. 443: Unnamed Patterns and Variables (Preview) 未命名模式和变量(预览)

    8. 444: Virtual Threads 虚拟线程

    9. 445: Unnamed Classes and Instance Main Methods (Preview) 未命名类和实例主方法(预览)

    10. 446:    Scoped Values (Preview)  范围值(预览)

    11. 448:    Vector API (Sixth Incubator) Vector API(第六孵化器)

    12. 449:    Deprecate the Windows 32-bit x86 Port for Removal 放弃Windows 32位x86端口以供删除

    13. 451:    Prepare to Disallow the Dynamic Loading of Agents 准备禁止动态加载代理

    14. 452:    Key Encapsulation Mechanism API  密钥封装机制API

    15. 453:    Structured Concurrency (Preview)  结构化并发症(预览)

JDK22

JDK 22 版本说明

    1. 423: Region Pinning for G1 地区锁定G1

    2. 447: Statements before super(...) (Preview)  超级(.)之前的声明(预览)

    3. 454: Foreign Function & Memory API    外部函数和内存API

    4. 456: Unnamed Variables & Patterns    未命名变量和模式

    5. 457: Class-File API (Preview)    类文件API(预览)

    6. 458: Launch Multi-File Source-Code Programs  启动多文件源代码程序

    7. 459: String Templates (Second Preview)   字符串模板(第二预览)

    8. 460: Vector API (Seventh Incubator)  Vector API(第七孵化器)

    9. 461: Stream Gatherers (Preview)  流媒体采集者(预览)

    10. 462:    Structured Concurrency (Second Preview)  结构化并发性(第二预览)

    11. 463:    Implicitly Declared Classes and Instance Main Methods (Second Preview)   隐含声明类和实例主方法(第二预览)

    12. 464:    Scoped Values (Second Preview)   范围值(第二预览)

JDK23

JDK 23 版本说明

    1. 455: Primitive Types in Patterns, instanceof, and switch (Preview)   Patterns、instanceof和Switch中的原始类型(预览)

    2. 466: Class-File API (Second Preview)  类文件API(第二预览版)

    3. 467: Markdown Documentation Comments Markdown文档评论

    4. 469: Vector API (Eighth Incubator)   Vector API(第八孵化器)

    5. 473: Stream Gatherers (Second Preview)    流媒体采集者(第二预览)

    6. 471: Deprecate the Memory-Access Methods in sun.misc.Unsafe for Removal   废弃sun.misc.中的内存访问方法不安全,无法删除

    7. 474: ZGC: Generational Mode by Default    ZGC:默认为世代模式

    8. 476: Module Import Declarations (Preview)    模块导入声明(预览)

    9. 477: Implicitly Declared Classes and Instance Main Methods (Third Preview)   隐含声明类和实例主方法(第三预览版)

    10. 480:    Structured Concurrency (Third Preview)  结构化并发性(第三预览)

    11. 481:    Scoped Values (Third Preview)   范围值(第三预览)

    12. 482:    Flexible Constructor Bodies (Second Preview)     灵活的建造者机构(第二预览)

JDK24

JDK 24 版本说明

        1. 472:Prepare to Restrict the Use of JNI 准备限制JNI的使用

3. JDK各版本下载链接

Java Archive | Oracle 下载地址

这篇关于JDK的版本迭代(JDK9 - JDK24)持续更新中的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1092342

相关文章

C++变换迭代器使用方法小结

《C++变换迭代器使用方法小结》本文主要介绍了C++变换迭代器使用方法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1、源码2、代码解析代码解析:transform_iterator1. transform_iterat

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、