【Java版本历史】
Java语言自JDK1.0版本以来经历了许多次更新，也在基本程式库中增加了大量的类别和套件。从J2SE 1.4开始，Java语言的变动由 Java Community Process（JCP）管理，JCP使用Java规范请求（Java Specification Requests，JSRs）来建议和定义对Java平台内容的新增和修改。Java语言由Java语言规范（Java Language Specification，JLS）定义，对JLS的更改则根据 JSR 901date=20200615213034 管理。
除了语言上的变化，多年来Java标准库（JCL）发生了巨大的变化，从JDK 1.0中的几百个类暴增到J2SE 5中的三千多个类。Swing、Java2D等的全新API被加入其中，而许多原本JDK 1.0的类和方法已被弃用。当然，仍然有一些程式可以将Java程式从新版本的Java平台转换为较旧版本（例如Java 5.0降转到1.4）。
Java 7发布后，Oracle承诺回到以前每两年发布一次的发布周期。但在2013年时，Oracle却宣布他们将Java 8延迟一年发表，官方表示是为了修复Java的安全漏洞。
2017年9月，Java 平台的主架构师 Mark Reinhold 发出提议，要求将 Java 的功能更新周期从之前的每两年一个新版本缩减到每六个月一个新版本。该提议获得了通过，并在提出后不久生效。
Java 17, 11, 8 为目前提供支持的 LTS（长期支持）版本；Java 10 是上一个快速发布版本，且已不再被支持。2018年9月，随着 Java 11 的发布，Java 10 自当日起不再被支持。Oracle 将在 2019 年 1 月前为商业用途中的 Java 8 长期支持，而针对非商用的更新将继续提供，直至 2020 年 12 月；此外，AdoptOpenJDK 也为 Java 8 提供免费更新。针对 Java 11 的长期支持将不再由 Oracle 提供，而是改由 OpenJDK 社区提供，例如 Eclipse Adoptium（以前称之为 AdoptOpenJDK） 的 Eclipse Temurin。
== JDK Alpha 和 Beta ==
第一个1995年发布的alpha和beta Java公开版本，API和ABI非常不稳定。 支援Java Web浏览器被取名为WebRunner。
== JDK 1.0 ==
第一个版本于1996年1月23日发布，叫做为Oak。而真正第一个稳定的版本JDK 1.0.2，被称作Java 1。
== JDK 1.1 ==
1997年2月19日发布。新增功能主要包括：
* AWT事件模型大规模重新编制
* 加入了内部类别
* JavaBeans
* JDBC
* RMI
* 能够支援自理的反射能力，在运行时不可能有修改。
* 针对 Microsoft Windows 平台上运作的版本，附带由Symantec为JavaSoft生产的JIT编译器
* 支持国际化和Unicode，该功能源自Taligent
== J2SE 1.2 ==
1998年12月8日发布，代号为Playground。 该版本到J2SE 5.0为止的后续版本被更名为Java 2，而版本名称「J2SE」（Java 2平台，标准版）取代JDK以区别J2EE（Java 2平台，企业版） 和J2ME（Java 2 Platform，Micro Edition）基础平台。这是Java的一个非常重要的版本，它将Java平台的大小增加至原先的三倍，在59个程式包中达到了1520个类。主要增加包括：
* strictfp 关键字
* 主类别中整合了Swing图像化API
* 首次为Sun提供的JVM配备JIT编译器
* Java plug-in（即 Java Applet）
*Java IDL，一个与CORBA互通的接口描述语言实现
* Java集合框架
== J2SE 1.3 ==
代号为Kestrel。在的版本中最著名的改变包括：
* 包含了HotSpot JVM（HotSpot JVM第一次被发布是在1999年4月，名为J2SE 1.2 JVM）
* 为了支援与CORBA的选择相容性而修改了RMI
* Java命名和目录接口（Java Naming and Directory Interface，缩写JNDI）包含在主程式库中（先前为扩充元件的形式）
* Java Platform Debugger Architecture (JPDA)
* JavaSound
* 用于实现动态代理的类
== J2SE 1.4 ==
代号为Merlin。2002年2月6日释出了 JSR 59date=20201031153626 ，是第一个在JCP下开发的Java平台。主要的变化包括︰
* 语言上的改变
** assert 关键字 (在  JSR 41 中被指定)
* 程式库的改善
** 仿照Perl的正规表示式
** 异常链，允许一个异常来封装原先处于较低级别的异常
** 支援Internet Protocol version 6 (IPv6)
** 非阻塞I/O（取名为 Nonblocking Input/Output，NIO）（在  JSR 51date=20110406193102  中被指定）
** 日志API (在 JSR 47date=20201130040225 中被指定)
** 图像 I/O API来读取和写入图片，支持JPEG、PNG等格式
** 整合了XML解析器和XSLT处理器（JAXP）（指定在 JSR 5date=20110129000312 和 JSR 63date=20110102040801 ）
** 整合安全和加密扩充元件(JCE, JSSE, JAAS)
** 内置了Java Web Start (Java Web Start 在2001年3月第一次被释出，作为J2SE 1.3的可选组件) (指定在 JSR 56date=20110409202740 )
** 偏好设定 API (java.util.prefs)
Java 1.4开放支源和安全性更新于2008年10月终止。Oracle客户的付费的安全性更新也在2013年2月结束。
== J2SE 5.0 ==
代号为Tiger。这个在2004年9月30日释出的版本原本以1.5编号，也就是仍然使用内部版本编号。这个数字辈改变是为了「更好地反映成熟度、稳定性、可扩充性和 J2SE 的安全水准」。这个版本是在JSR 176底下被开发。
J2SE 5.0在2008年4月8日进入其即将停止公开更新的期间；2009年11月3日正式不公开开放更新。Oracle客户直到2015年5月都能透过付费的方式取得更新 。
Tiger增加了若干个重要的新语言功能。
* 泛型（Generics）： 为集合提供编译期间 （静态） 型别安全，且不须为大多数类型转换 （型别转换） （规范在 JSR 14）
* 元资料（Metadata）： 也称作注解。让语言结构（像是类别和方法）能够用额外的资料标记，可以由元资料意识工具处理（规范在 JSR 175）
* 自动封装与解封装： 在基本的资料型别（如 int）和基本的的外覆类别 （如 Integer） 之间能够自动转换 （规范在 JSR 201）
* 枚举（Enumerations）： 以 enum 关键字创造出一种型别安全，有排序值的清单（如Day.MONDAY、 Day.TUESDAY 等）；以前这只能透过非型别安全的恒定整数或自行撰写的类别来达成 （型别安全的枚举模式） （规范在JSR 201）
* 可变参数函数（Varargs）：方法的最后一个参数现在可以用一个类型名称加上三个点宣告（如：void drawtext(String... lines)）；在调用代码中，型别中参数里任何的数字可以被使用，而它们再放在一个阵列来传递给方法，或是其它的调用代码可以传递那个型别的阵列
* 强化 for each 回圈：for 回圈的语法被用特别的语法扩充了，适用于阵列或 Iterable，用于迭代每个成员，如基本的 Collection 类别 (规范在 JSR 201)
* 改进多执行绪 Java 程式的执行语义；新的 Java 记忆体模型改善了复杂性、 有效性和以前的规格性能
* 静态导入
另外也有以下这些对于基本程式库的改善：
* 自动给RMI产生桩模块
* Swing：新的介面外观，叫做synth
* 异步实用工具 在  java.util.concurrent date=20090804195831  套件中
* Scanner 类别来解析来自各式各样的输入和缓冲
Java 5是Java的最后一个正式支援Microsoft Windows 98和Windows ME的版本，而Windows Vista是J2SE 5在2009年10月的Java 5生命周期之前支援的Windows的最新版本。
Java 5 Update 5（1.5.0_05）是Java在Windows 95（装了Internet Explorer 5.5 的）和Windows NT 4.0上运行的最后一个版本。
Java 5 最初出现在 Mac OS X 10.4 （Tiger），到了 Mac OS X 10.5 （Leopard）时成为了预设的 Java 版本。
=== 版本控制系统的改变 ===
此版本推出了JAVA语言中，一个新的版本控制系统，而旧版本控制系统仍然可以在开发者资源库中继续使用。这种对应关系持续维持到以后的版本 (Java 6 = JDK 1.6, Java 7 = JDK 1.7, 以此类推).
=== Java 5 更新 ===
== Java SE 6 ==
代号为Mustang。版本发布于2006年12月11日，Sun把原本的名称「J2SE」改为「Java SE」，然后再从版本号中去掉「.0」，而开发者内部编号仍然是1.6.0。这个版本是根据 JSR 270date=20210125121053 开发的。
在发展阶段，新版本大约每一周都会释出一些功能增强和漏洞的修复。Beta版本在2006年2月和6月释出，也就是为什么2006年12月11日变成最终的版本。
本版本包含的主要更改：
* 支持旧的Win9x版本下降；非正式地，Java 6 Update 7是Java的最后一个显示为在这些版本的Windows上工作的版本。 这被认为是因为在Update 10版本中的主要更改。
* 脚本语言支持（Scripting Language Support）（JSR 223）：用于与脚本语言紧密整合的通用API，以及内建的Mozilla JavaScript Rhino整合。
* 核心平台和Swing性能显著的改进。
* 透过JAX-WS改善的网路服务支援(JSR 224).
* 支援JDBC 4.0 (JSR 221).
* Java编译器API (JSR 199)：允许Java程式以写程式的方式选择和呼叫Java编译器的API。
* 将JAXB升级到版本2.0：包括StAX解析器的整合。
* 支持pluggable annotations (JSR 269).
* 改善许多GUI，像是SwingWorker在API中的整合，表格排序和筛选，以及真正的Swing双缓冲（消除模糊区域效果）。
* 包含JVM改善：同步和编译器性能优化，新演算法和对现有垃圾收集演算法的升级以及应用程序启动性能。date=November 2011
Java 6可以安装到在64位（Core 2 Duo和更高版本）处理器机器上运行的Mac OS X 10.5（Leopard）。 运行Mac OS X 10.6（Snow Leopard）的32位和64位机器也支援Java 6。
Java 6在2013年2月到了它支援生命周期的尾声，此时所有公开更新（包括安全更新）都计划停止。 Oracle在2013年3月和4月发布了另外两个对Java 6的更新，修补了一些安全漏洞。
=== Java 6 更新 ===
JAVA 6释出后，Sun和后来的Oracle，释出了几个更新，而不更改任何公开的API，增强了终端使用者的可用性或固定的漏洞。Oracle曾声明，自2016 年1月，JAVA 6和其它更旧的版本已无法从Oracle下载；但在此之后，Oracle于其官网重新提供各个旧版本的下载（需要登录Oracle帐户）。
== Java SE 7 ==
JAVA 7 （代号Dolphin） 是一个重大的更新，在 2011年7月7日亮相，并在2011年7月28日开放给开发者使用。发展时期被分类成十三个重要阶段，最后一个阶段在2011年6月6日完成。平均来看，每个里程碑各有8个版本（就是一般包括的功能增强和漏洞修复） 。在  OpenJDK 7 专案中的功能清单date=20120211102104 中列出了很多的改变。
在 Java 7 中新增的功能包括：
*JVM本身对动态语言的支持：新的invokedynamic字节码指令（ JSR-292date=20201220200733 ），与多语言虚拟机（Multi Language Virtual Machine）原型
* 64位指针压缩（Java 6 中可以使用 XX:+UseCompressedOops 开启）
* 一些语言方面的小改变（在Coin专案下的一个小群体）：
* 在switch中使用字符串类型
* try语句中的自动资源管理
* 针对泛型实例的创建而改善的类型推论，被称为钻石操作符
* 简化了varargs方法的声明
* 二进位整数字面值
* 允许在数值字面值中加入下划线
* 允许在一个 catch 中捕捉多个类型的异常，并使用改进的类型检查重新抛出异常
* JSR 166下的并发实用工具
* 新的档案 I/O 程式库 (JSR 203 定义) 增加多重档案的支援、档案原始资料和符号链接。新的包为：java.nio.file、java.nio.file.attribute和java.nio.file.spi
* 使用 Timsort 来为集合与数组排序，取代归并排序
* 对椭圆曲线加密演算法增加标准库级别的支援
* 一个给Java 2D的XRender传递途径，改进了现代GPUs特有的功能的处理
* 用于图形功能的新平台API（最初在版本6u10中的实作为不支援的API）
* 增强了对新网路通讯协定（包括SCTP和Sockets Direct Protocol）的标准库级别的支持
* 更新对XML和Unicode的支持，以符合最新标准
* Java部署规则集
Lambda（Java 对匿名函数的实作）、Jigsaw（Java 对模块化的实作），以及其它一些 Coin 项目中的内容在 Java 7 里被放弃，而转为Java 8一部份（其中 Jigsaw 直至 Java 9 才得到实现）。
从2012年4月开始，Java 7 一直是java.com的预设下载版本，直到 Java 8 发布。
=== Java 7 更新 ===
Oracle 在每季度发布 Java 7 家族每季的公开更新，至2015年4月产品支援生命周期结束时停止。
== Java SE 8 ==
Java 8 于2014年3月18日释出， 包含了一些原本被计划在 Java 7却延迟的功能。
这些功能改进在 JDK Enhancement Proposals (JEPs) 的指导下得到了整合。
* JSR 335，JEP 126：Lambda专案中提供的语言级匿名函数支持（官方称为 lambda 表达式，非官方亦称闭包）；添加预设方法（虚拟扩充元件方法） ，以允许在不破坏兼容性的情况下向现有接口中新增方法。Java社群中曾经有过针对是否要加入 lambda 表达式支援的辩论。稍后Sun公司宣布 lambda 表达式将会包含在Java中，并请社群协助改善该特性。支援lambda表达式使得针对流中元素的函数式操作成为可能，由此可以实现由 MapReduce 启发的函数式集合操作。预设方法允许API作者添加新的方法到现有介面上，而不会破坏旧的程式码中。预设方法还使得多重继承的行为 （不是状态）成为可能，但默认方法的设计意图并非在此。
* JSR 223，JEP 174：Nashorn专案，一个 JavaScript 运行时，它允许开发人员在应用程式中嵌入 JavaScript 程式码
* JSR 308，JEP 104：在 Java 型别上的注解
* 无符号整数算术
* JSR 337，JEP 120：重复注解
* JSR 310，JEP 150：日期和时间 API，基于Joda-Time日期时间处理库的实现。
* JEP 178：静态连结 JNI 程式库
* JEP 153：执行 JavaFX 应用程式（直接执行 JavaFX 的应用程式的 JAR 包）
* JEP 122：移除了虚拟机内存管理中的永久世代
Java 8 不再支援 Windows XP ，但JDK 8 第 25 版更新仍然可以在 Windows XP安装和运行。 先前JDK 8的更新版本可以在XP中运行，但必须通过强制解压安装程序来进行安装。
2014年10月后，Java 8 成为官方网站上预设的下载版本。
=== Java 8 更新 ===
== Java SE 9 ==
在2011年的JavaOne中，Oracle讨论了一些他们希望在2016年于Java 9中发布的功能。Java 9 应当对千兆级堆拥有更好的支持，同时能够更好地集成本机代码，且拥有新的垃圾收集器G1和能够自我调节的JVM。2016年初，Java 9 的发布被重新定为2017年3月；2017年3月时，发布日期又被拖延至2017年7月；后来又因Java执行委员会对Jigsaw项目实现的分歧而最终定为2017年9月21日，在此期间Oracle回应了部分疑问，并对一些重要的技术问题进行了修正。在2017年6月的最后几天，JCP对拟议的模块系统方案达成了共识。
* JSR 376：在Jigsaw专案中将JDK模组化（参见Java平台模块系统条目）
* JEP 222：jshell：Java Shell（一个 Java 交互式顶层构件）
* JEP 295：AOT编译（通过 Graal VM 实现）
* JEP 268：XML Catalogs
*JEP 266：更多的并发更新。包含响应式流的Java实现，及其部分替代品java.util.concurrent.Flow。
*JEP 193：变量句柄：定义一个标准方法来调用java.util.concurrent.atomic和sun.misc.Unsafe操作的等价物。
*JEP 282：jlink：Java链接器。该工具可以为模块生成一个包含了其所有依赖项的自定义运行时映像，同时允许生成一个包括运行它的JVM的可执行文件，。
*JavaDB被移出JDK
*JEP 263：高DPI图像：自动缩放与尺寸自适应。
Java 9 的首个发布候选版于2017年8月9日发布，首个稳定版于2017年9月21日发布。
=== Java 9 更新 ===
== Java SE 10 ==
OpenJDK 10 于2018年3月20日发布。此次更新包含以下12个新特性：
* JEP 286：局部变量类型推断
*JEP 317：实验性的基于Java的JIT编译器。这是 Linux x64 下 Graal 动态编译器的集成。
*JEP 310：应用程序类级别数据共享
*JEP 322：基于时间的版本命名
*JEP 307：适用于G1的多线程完全垃圾回收
*JEP 304：垃圾回收器接口
*JEP 314：更多的Unicode语言标签扩展
*JEP 319：内置根证书
*JEP 312：线程本地握手
*JEP 316：在可选的内存设备上申请堆内存空间
*JEP 313：删除本地代码头文件生成器javah
*JEP 296：将所有JDK分支整合到同一个版本库中
=== Java 10 更新 ===
== Java SE 11 ==
JDK 11 于2018年9月25日发布。Java 11 包含如下更新：
* JEP 181：针对嵌套成员的访问控制
* JEP 309：动态类文件常量
* JEP 315：利用 Aarch64 的特有架构改进其上的性能
* JEP 318：Epsilon：无操作垃圾收集器
* JEP 320：移除 Java EE 和 CORBA 模块
* JEP 321：HTTP Client
* JEP 323：lambda参数的局部变量语法
* JEP 324：支持 Curve25519 和 Curve 448 密钥
* JEP 327：Unicode 10
* JEP 328：添加Java飞行记录器（JFR），其用于创建性能分析记录
* JEP 329：ChaCha20 和 Poly1305 加密算法
* JEP 330：运行单文件源码程序
* JEP 331：低开销堆分析
* JEP 332：支持 TLS 1.3
* JEP 333：添加ZGC（一个可扩展的低延迟垃圾收集器）
* JEP 335：弃用 Nashorn JavaScript 引擎
* JEP 336：弃用 Pack200 相关的工具及 API
=== Java 11 更新 ===
== Java SE 12 ==
JDK 12 于2019年3月19日发布。该版本包含较多新特性，例如：
* JEP 189：Shenandoah：一个实验性的低延迟垃圾收集器
* JEP 230：细粒度性能评审套件
* JEP 325：Switch 表达式（预览阶段）
* JEP 334：JVM Constants API
* JEP 340：仅保留一个 AArch64 平台的移植
* JEP 341：默认类数据共享归档
* JEP 344：针对G1，提供可中止的混合垃圾收集
* JEP 346：针对G1，及时释放已申请但未使用的内存
=== Java 12 更新 ===
== Java SE 13 ==
JDK 13 于2019年9月17日发布。该版本包含以下新特性以及很多的强化和很多的漏洞修补。
* JEP-350: 动态 CDS 归档
* JEP-351: ZGC: 取消提交未使用记忆体
* JEP-353: 重新实现旧版 Socket API
* JEP-354: Switch 表达式（预览阶段）
* JEP-355: 文字方块（预览阶段）
=== Java 13 更新 ===
== Java SE 14 ==
JDK 14 发布于 2020 年 3 月 17 日。Java 14 包含了下方列出的新功能，以及“数百个小改进和数千个漏洞修复”。
* JEP-305：使用 instanceof 的模式匹配（预览）
* JEP-343：打包工具（孵化中）
* JEP-345：在 G1 中，对不均匀的内存访问（NUMA）情况下的内存申请优化
* JEP-349：JFR Event Streaming
* JEP-352：使字节缓冲区能够映射到非易失性存储器上
* JEP-358：有帮助的 NullPointerExceptions
* JEP-359：记录类（预览）
* JEP-361：Switch 表达式（标准）
* JEP-362：弃用 Solaris 和 SPARC 平台上的移植版本
* JEP-363：移除 Concurrent Mark Sweep (CMS) 垃圾收集器
* JEP-364：适用于 macOS 的 ZGC
* JEP-365：适用于 Windows 的 ZGC
* JEP-366：弃用 ParallelScavenge + SerialOld 的垃圾收集器组合
* JEP-367：移除 Pack200 相关的工具及 API
* JEP-368：文本块（第二预览版本）
* JEP-370：外部内存访问 API（孵化中）
=== Java 14 更新 ===
== Java SE 15 ==
JDK 15 发布于 2020 年 9 月 15 日。Java 15 增加了对多行字符串字面量（亦称文本块）的支持，此外 Shenandoah 和 ZGC 垃圾收集器也转为生产级别，不再标记为测试中。该版本移除了对 Solaris 操作系统及 SPARC CPU 的支持，还移除了 Nashron JavaScript 引擎，以及一些根 CA 证书。
* JEP 339：爱德华曲线数字签名算法 (EdDSA)
* JEP 360：密封类（预览）
* JEP 371：隐藏类
* JEP 372：移除 Nashorn JavaScript 引擎
* JEP 373：重新实现 DatagramSocket API
* JEP 374：禁用并弃用偏向锁
* JEP 375：使用 instanceof 的模式匹配（第二预览版本）
* JEP 377：ZGC: 可伸缩的低延迟垃圾收集器
* JEP 378：文本块
* JEP 379：Shenandoah: 低暂停时间的垃圾收集器
* JEP 381：移除 Solaris 和 SPARC 平台上的移植版本
* JEP 383：外部内存访问 API（第二孵化版本）
* JEP 384：记录类（第二预览）
* JEP 385：弃用 RMI Activation 以待后续移除
== Java SE 16 ==
JDK 16 发布于 2021 年 3 月 16 日。Java 16 移除了 AOT 编译及 Graal JIT 的选项。自 Java 16 开始，允许使用 C++14 来编写 Java 的实现（但仍不允许 C++17、C++20 等版本），且代码迁移到了 GitHub，不再使用 Mercurial 版本控制系统。
* JEP 338：Vector API（孵化）
* JEP 347：启用 C++14 语言特性
* JEP 357：从 Mercurial 迁移到 Git
* JEP 369：迁移到 GitHub
* JEP 376：ZGC: 并发的线程栈处理
* JEP 380：用于 Unix 域套接字的 Channel
* JEP 386：Alpine Linux 的移植版本
* JEP 387：可伸缩的 Metaspace
* JEP 388：Windows/AArch64 的移植版本
* JEP 389：外部链接器 API（孵化）
* JEP 390：对值类型的类（Value-based Classes）发出警告
* JEP 392：打包工具
* JEP 393：外部内存访问 API（第三孵化版本）
* JEP 394：使用 instanceof 的模式匹配
* JEP 395：记录类
* JEP 396：在缺省情况下对 JDK 内部进行强封装
* JEP 397：密封类（第二预览版本）
== Java SE 17 ==
JDK 17 发布于2021年9月14日。Java 17是切换到新的6个月发布周期以来的第二个长期支持（LTS）版本（第一个是Java 11）。
* JEP 306：将浮点数的默认语义恢复为严格的
* JEP 356：加强的伪随机数生成器
* JEP 382：新的 macOS 渲染管线
* JEP 391：macOS/AArch64 的移植版本
* JEP 398：启用 Applet API 以待后续移除
* JEP 403：对 JDK 内部进行强封装
* JEP 406：使用 switch 的模式匹配（预览）
* JEP 407：移除 RMI Activation
* JEP 409：密封类
* JEP 410：移除实验性的 AOT 与 JIT 编译器
* JEP 411：弃用安全管理器以待后续移除
* JEP 412：外部函数与内存 API（预览）
* JEP 414：Vector API（第二预览版本）
* JEP 415：限定上下文的反序列化过滤器
== Java 18 ==
JDK 18 发布于 2022 年 3 月 22 日。
* JEP 400：默认使用 UTF-8
* JEP 408：简易 Web 服务器
* JEP 413：Java API 文档中的代码片段
* JEP 416：使用 Method Handle 重新实现核心反射
* JEP 417：Vector API（第三孵化版本）
* JEP 418：因特网地址解析 SPI
* JEP 419：外部函数与内存 API（第二预览版本）
* JEP 420：使用 switch 的模式匹配（第二预览版本）
* JEP 421：弃用 Finalization 以待后续移除
== Java 19 ==
JDK 19 发布于 2022 年 9 月 20 日。
* JEP 405：记录类的模式（预览）
* JEP 422：Linux/RISC-V 的移植版本
* JEP 424：外部函数与内存 API（预览）
* JEP 425：虚拟线程（预览）
* JEP 426：Vector API（第四预览版本）
* JEP 427：使用 switch 的模式匹配（第三预览版本）
* JEP 428：结构化并发（孵化）
== Java 20 ==
JDK 20 发布于 2023 年 3 月 21 日。
* JEP 429：作用域值（孵化）
* JEP 432：记录类的模式（第二预览版本）
* JEP 433：使用 switch 的模式匹配（第四预览版本）
* JEP 434：外部函数与内存 API（第二预览版本）
* JEP 436：虚拟线程（第二预览版本）
* JEP 437：结构化并发（第二孵化版本）
== 实作 ==
OpenJDK 是一个自由开放源始码软体实作在Java Platform, Standard Edition (Java SE)。
在OpenJDK之前，许多各式各样不同的公司和组织推出好几个免费的Java实作。其中一个例子是Apache Harmony。 IBM也有提供Java实作，而RedHat则是通过IcedTea专案提供它：一个用于OpenJDK的架构和整合专案。
== 参考文献 ==
== 外部连结 ==
*  官方 Java SE 下载date=20200212100943
*  Java早期版本date=20190908124430
*  Full list of changes for J2SE 1.3
*  Full list of changes for J2SE 1.4
*  Full list of changes for J2SE 5.0date=20111122172658
*  Java SE 7 release notesdate=20200514224546
*  Sun Java Supported versions and EOLdate=20111114222648
*  下载Java旧版本的封存档date=20200205030434