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

相关文章

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,

hdu1394(线段树点更新的应用)

题意:求一个序列经过一定的操作得到的序列的最小逆序数 这题会用到逆序数的一个性质,在0到n-1这些数字组成的乱序排列,将第一个数字A移到最后一位,得到的逆序数为res-a+(n-a-1) 知道上面的知识点后,可以用暴力来解 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#in

hdu1689(线段树成段更新)

两种操作:1、set区间[a,b]上数字为v;2、查询[ 1 , n ]上的sum 代码如下: #include<iostream>#include<algorithm>#include<cstring>#include<stack>#include<queue>#include<set>#include<map>#include<stdio.h>#include<stdl

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

Android实现任意版本设置默认的锁屏壁纸和桌面壁纸(两张壁纸可不一致)

客户有些需求需要设置默认壁纸和锁屏壁纸  在默认情况下 这两个壁纸是相同的  如果需要默认的锁屏壁纸和桌面壁纸不一样 需要额外修改 Android13实现 替换默认桌面壁纸: 将图片文件替换frameworks/base/core/res/res/drawable-nodpi/default_wallpaper.*  (注意不能是bmp格式) 替换默认锁屏壁纸: 将图片资源放入vendo

hdu 1754 I Hate It(线段树,单点更新,区间最值)

题意是求一个线段中的最大数。 线段树的模板题,试用了一下交大的模板。效率有点略低。 代码: #include <stdio.h>#include <string.h>#define TREE_SIZE (1 << (20))//const int TREE_SIZE = 200000 + 10;int max(int a, int b){return a > b ? a :

AI行业应用(不定期更新)

ChatPDF 可以让你上传一个 PDF 文件,然后针对这个 PDF 进行小结和提问。你可以把各种各样你要研究的分析报告交给它,快速获取到想要知道的信息。https://www.chatpdf.com/

GIS图形库更新2024.8.4-9.9

更多精彩内容请访问 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信:digital_twin123 Cesium 本期发布了1.121 版本。重大新闻,Cesium被Bentley收购。 ✨ 功能和改进 默认启用 MSAA,采样 4 次。若要关闭 MSAA,则可以设置scene.msaaSamples = 1。但是通过比较,发现并没有多大改善。

JavaFX应用更新检测功能(在线自动更新方案)

JavaFX开发的桌面应用属于C端,一般来说需要版本检测和自动更新功能,这里记录一下一种版本检测和自动更新的方法。 1. 整体方案 JavaFX.应用版本检测、自动更新主要涉及一下步骤: 读取本地应用版本拉取远程版本并比较两个版本如果需要升级,那么拉取更新历史弹出升级控制窗口用户选择升级时,拉取升级包解压,重启应用用户选择忽略时,本地版本标志为忽略版本用户选择取消时,隐藏升级控制窗口 2.

迭代器模式iterator

学习笔记,原文链接 https://refactoringguru.cn/design-patterns/iterator 不暴露集合底层表现形式 (列表、 栈和树等) 的情况下遍历集合中所有的元素