Java版本历史
自JDK 1.0版本以来,Java语言历经了多次迭代更新,并在基础程序库中持续增添大量类别与包。自J2SE 1.4版本起,Java语言的演变过程交由 Java Community Process(JCP)统一管理,其采用Java规范请求(Java Specification Requests,简称JSRs)的方式,以建议和确定对Java平台各部分内容的新增与修订工作。Java语言的规则遵循《Java语言规范》(Java Language Specification,简称JLS),针对JLS的任何改动均依据JSR 901(页面存档备份,存于互联网档案馆)进行规范化管理。
除了语言上的变化,多年来Java标准库(JCL)发生了巨大的变化,从JDK 1.0中的几百个类暴增到J2SE 5中的三千多个类。Swing、Java2D等的全新API被加入其中,而许多原本JDK 1.0的类和方法已被弃用。当然,仍然有一些程序可以将Java程序从新版本的Java平台转换为较旧版本(例如Java 5.0降转到1.4)。
Java 7发布后,Oracle承诺回到以前每两年发布一次的发布周期。[1]但在2013年时,Oracle却宣布他们将Java 8延迟一年发表,官方表示是为了修复Java的安全漏洞。[2]
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)
版本 | 类文件格式版本[3] | 发布日期 | 最终免费公开更新时间[4][5] | 最后延伸支持日期 |
---|---|---|---|---|
JDK Beta | ? | 1995 | ? | ? |
JDK 1.0 | 44 | 1996 年 1 月 23 日 | ? | ? |
JDK 1.1 | 45 | 1997 年 2 月 18 日 | ? | ? |
J2SE 1.2 | 46 | 1998 年 12 月 4 日 | ? | ? |
J2SE 1.3 | 47 | 2000 年 5 月 8 日 | ? | ? |
J2SE 1.4 | 48 | 2002 年 2 月 13 日 | 2008 年 10 月 | 2013 年 2 月 |
J2SE 5.0 | 49 | 2004 年 9 月 30 日 | 2009 年 11 月 | 2015 年 4 月 |
Java SE 6 | 50 | 2006 年 12 月 11 日 | 2013 年 4 月 | Oracle 于 2018 年 12 月停止更新 Azul 于 2026 年 12 月停止更新 |
Java SE 7 | 51 | 2011 年 7 月 28 日 | OpenJDK 于 2022 年 9 月停止更新(2015 年 5 月前由 Oracle 维护) Red Hat 于 2020 年 8 月停止更新 Azul 于 2022 年 9 月停止更新 |
Oracle 于 2022 年 7 月停止更新 Red Hat 于 2020 年 6 月停止更新 Azul 于 2027 年 12 月停止更新 |
Java SE 8 (LTS) | 52 | 2014 年 3 月 18 日 | OpenJDK 目前由 Red Hat 维护 Oracle 于 2022 年 3 月停止更新(商用) Oracle 于 2030 年 12 月停止更新(非商用) Azul 于 2030 年 12 月停止更新 IBM Semeru 于 2026 年 5 月停止更新 Eclipse Adoptium 于 2026 年 5 月或之后停止更新 Amazon Corretto 于 2026 年 5 月或之后停止更新 |
Oracle 于 2030 年 12 月停止更新 Red Hat 于 2026 年 11 月停止更新 |
Java SE 9 | 53 | 2017 年 9 月 21 日 | OpenJDK 于 2018 年 3 月停止更新 | 不适用 |
Java SE 10 | 54 | 2018 年 3 月 20 日 | OpenJDK 于 2018 年 9 月停止更新 | 不适用 |
Java SE 11 (LTS) | 55 | 2018 年 9 月 25 日 | OpenJDK 目前由 Red Hat 维护 Azul 于 2026 年 9 月停止更新 IBM Semeru 于 2024 年 10 月停止更新 Eclipse Adoptium 于 2024 年 10 月或之后停止更新 Amazon Corretto 于 2027 年 9 月或之后停止更新 微软于 2024 年 10 月或之后停止更新 |
Oracle 于 2026 年 9 月停止更新 Azul 于 2026 年 9 月停止更新 Red Hat 于 2024 年 10 月停止更新 |
Java SE 12 | 56 | 2019 年 3 月 19 日 | OpenJDK 于 2019 年 9 月停止更新 | 不适用 |
Java SE 13 | 57 | 2019 年 9 月 17 日 | OpenJDK 目前由 Azul 维护 Azul 于 2023 年 3 月停止更新 |
不适用 |
Java SE 14 | 58 | 2020 年 3 月 17 日 | OpenJDK 于 2020 年 9 月停止更新 | 不适用 |
Java SE 15 | 59 | 2020 年 9 月 16 日 | OpenJDK 目前由 Azul 维护 Azul 于 2023 年 3 月停止更新 |
不适用 |
Java SE 16 | 60 | 2021 年 3 月 16 日 | OpenJDK 于 2021 年 9 月停止更新 | 不适用 |
Java SE 17 (LTS) | 61 | 2021 年 9 月 14 日 | OpenJDK 目前由 SAP 维护 Azul 于 2029 年 9 月停止更新 IBM Semeru 于 2027 年 10 月停止更新 微软于 2027 年 9 月或之后停止更新 Eclipse Adoptium 于 2027 年 9 月或之后停止更新 |
Oracle 于 2029 年 9 月或之后停止更新 Azul 于 2029 年 9 月停止更新 Red Hat 于 2027 年 10 月停止更新 |
Java SE 18 | 62 | 2022 年 3 月 22 日 | OpenJDK 于 2022 年 9 月停止更新 Eclipse Adoptium 于 2022 年 9 月或之后停止更新 |
不适用 |
Java SE 19 | 63 | 2022 年 9 月 20 日 | OpenJDK 于 2023 年 3 月停止更新 | 不适用 |
Java SE 20 | 64 | 2023 年 3 月 21 日 | OpenJDK 于 2023 年 9 月停止更新 | 不适用 |
Java SE 21 (LTS) | 65 | 2023 年 9 月 19 日 | 于 2028 年 9 月停止更新 | Oracle 于 2031 年 9 月停止更新 |
Java SE 22 | 66 | 2024 年 3 月 19 日 | 于 2024 年 9 月停止更新 | 不适用 |
Java SE 23 | 67 | 2024 年 9 月 | 于 2025 年 3 月停止更新 | 不适用 |
Java SE 24 | 68 | 2025 年 3 月 | 于 2025 年 9 月停止更新 | 不适用 |
Java SE 25 (LTS) | 69 | 2025 年 9 月 | Oracle 于 2028 年停止更新 | Oracle 于 2033 年停止更新 |
格式: 旧版本 旧版本,仍被支持 当前版本 未来版本 |
JDK Alpha 和 Beta
第一个1995年发布的alpha和beta Java公开版本,API和ABI非常不稳定。 支持Java Web浏览器被取名为WebRunner。
JDK 1.0
第一个版本于1996年1月23日发布,叫做为Oak[6]。而真正第一个稳定的版本JDK 1.0.2,被称作Java 1。[7]
JDK 1.1
1997年2月19日发布。新增功能主要包括:[8]
- AWT事件模型大规模重新编制
- 加入了内部类别
- JavaBeans
- JDBC
- RMI
- 能够支持自理的反射能力,在运行时不可能有修改。
- 针对 Microsoft Windows 平台上运作的版本,附带由Symantec为JavaSoft生产的JIT编译器
- 支持国际化和Unicode,该功能源自Taligent[9]
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个类。主要增加包括:[10]
strictfp
关键字- 主类别中集成了Swing图像化API
- 首次为Sun提供的JVM配备JIT编译器
- Java plug-in(即 Java Applet)
- Java IDL,一个与CORBA互通的接口描述语言实现
- Java集合框架
J2SE 1.3
代号为Kestrel。在版本中最著名的改变包括:[11][12]
- 包含了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 59(页面存档备份,存于互联网档案馆),是第一个在JCP下开发的Java平台。主要的变化包括︰[13][14]
- 语言上的改变
- 程序库的改善
- 仿照Perl的正则表达式
- 异常链,允许一个异常来封装原先处于较低级别的异常
- 支持Internet Protocol version 6 (IPv6)
- 非阻塞I/O(取名为 Nonblocking Input/Output,NIO)(在 JSR 51(页面存档备份,存于互联网档案馆) 中被指定)
- 日志API (在JSR 47(页面存档备份,存于互联网档案馆)中被指定)
- 图像 I/O API来读取和写入图片,支持JPEG、PNG等格式
- 集成了XML解析器和XSLT处理器(JAXP)(指定在JSR 5(页面存档备份,存于互联网档案馆)和JSR 63(页面存档备份,存于互联网档案馆))
- 集成安全和加密扩展组件(JCE, JSSE, JAAS)
- 内建了Java Web Start (Java Web Start 在2001年3月第一次被发布,作为J2SE 1.3的可选组件) (指定在JSR 56(页面存档备份,存于互联网档案馆))
- 偏好设置 API (java.util.prefs)
Java 1.4开放支源和安全性更新于2008年10月终止。Oracle客户的付费的安全性更新也在2013年2月结束。[15]
J2SE 5.0
代号为Tiger。这个在2004年9月30日发布的版本原本以1.5编号,也就是仍然使用内部版本编号。这个数字辈改变是为了“更好地反映成熟度、稳定性、可扩展性和 J2SE 的安全水准”。这个版本是在JSR 176底下被开发。
J2SE 5.0在2008年4月8日进入其即将停止公开更新的期间;2009年11月3日正式不公开开放更新。Oracle客户直到2015年5月都能透过付费的方式获取更新 。 [16]
- 泛型(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 存储器模型改善了复杂性、 有效性和以前的规格性能[19]
- 静态导入
另外也有以下这些对于基本程序库的改善:
- 自动给RMI产生桩模块
- Swing:新的接口外观,叫做synth
- 异步实用工具 在 java.util.concurrent (页面存档备份,存于互联网档案馆) 包中[20]
- Scanner 类别来解析来自各式各样的输入和缓冲
Java 5是Java的最后一个正式支持Microsoft Windows 98和Windows ME的版本[21],而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上运行的最后一个版本。[22]
Java 5 最初出现在 Mac OS X 10.4 (Tiger),到了 Mac OS X 10.5 (Leopard)时成为了默认的 Java 版本。
版本控制系统的改变
此版本推出了JAVA语言中,一个新的版本控制系统,而旧版本控制系统仍然可以在开发者资源库中继续使用。
Both version numbers "1.5.0" and "5.0" are used to identify this release of the Java 2 Platform Standard Edition. Version "5.0" is the product version, while "1.5.0" is the developer version. The number "5.0" is used to better reflect the level of maturity, stability, scalability and security of the J2SE.
这种对应关系持续维持到以后的版本 (Java 6 = JDK 1.6, Java 7 = JDK 1.7, 以此类推).
Java 5 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 5 | 2004-10-4 | Metadata、泛型类型、对基础类型自动封装和自动解封装、 加强 for 循环、 枚举的类型、 静态类别导入,格式化I/O、 varargs和并发的实用工具。改进的启动时间和存储器占用量。在多个正在运行的JVM 之间共享的只读资料。 远程监控和管理。一个新的JVM配置API。过程化的堆栈版本追踪。支持对 XML 1.1 的命名空间、 XML 架构、 SAX 2.0.2,DOM级别3,与XSLT 1.1 快速的XLSTC的编译器。Unicode 4.0支持。 |
Java SE 5 Update 1 | 2004-12-25 | 50个漏洞修复 |
Java SE 5 Update 2 | 2005-03-16 | 一些中断的修复。程序现在以较定制的方式编译。日历漏洞修复和其它漏洞修复。 |
Java SE 5 Update 3 | 2005-05-03 | 这个版本修复了一些漏洞,包含在Linux Mozilla外挂的中断。 |
Java SE 5 Update 4 | 2005-07-04 | 在这个版本中,J2SE对于64位Windows的支持从候选版本中脱颖而出。这个版本在AMD64/EM64T 64位模式运行用Windows Server 2003 x64 版本的机器。 |
Java SE 5 Update 5 | 2005-09-18 | 修复了一些漏洞以及表现增强。对Windows 95 和 Windows NT 4.0最后的更新。 |
Java SE 5 Update 6 | 2005-12-07 | 在这个版本之前,Java小程序或应用程式可以决定想要运行的JRE版本,但从这个更新之后就不再是这样了。所有的程序都用最新版本的JRE运行。 |
Java SE 5 Update 7 | 2006-05-29 | 修复了几个漏洞并提高性能。 |
Java SE 5 Update 8 | 2006-08-13 | 修复了一些漏洞以及提高了性能。 |
Java SE 5 Update 9 | 2006-11-12 | 这个版本修复了一些小回归。 |
Java SE 5 Update 10 | 2006-12-22 | 添加了由Linux 2.6支持的epoll I/O事件通知工具的实现。 许多漏洞被修复。 |
Java SE 5 Update 11 | 2007-03-08 | 修复了几个漏洞并提高了性能。 |
Java SE 5 Update 12 | 2007-06-11 | |
Java SE 5 Update 13 | 2007-10-05 | Java Web Start中与本地文件存取相关的多个安全漏洞已修复。 修复了允许绕过网络进入限制的JRE中的安全漏洞。 修复其他几个安全问题和小错误。 |
Java SE 5 Update 14 | ||
Java SE 5 Update 15 | 2008-03-06 | 修复因缓冲堆超出边界而导致的几个崩溃漏洞以及其他一些小漏洞。 现在来自AOL,DigiCert和TrustCenter的新的根证书已经被包含在内。 |
Java SE 5 Update 16 | 2008-07-23 | 此版本修复了几个安全漏洞,例如DoS漏洞,缓冲器溢出和其他可能导致崩溃的漏洞,或是会给程序存取某些系统资源。 这些漏洞位于Java Web Start,Java管理扩展组件(Java Management Extensions,JMX)管理代理以及用于处理XML资料的函数中。 |
Java SE 5 Update 17 | 2008-12-03 | 更新了UTF-8字符集,实现以处理非最短形式的UTF-8字节序列,从而引入了与以前版本不兼容的问题。 添加了新的根证书。 许多漏洞被修复。 |
Java SE 5 Update 18 | 2009-03-25 | 几个安全上的问题已解决。 稍微修改了在LDAP目录中存取Java物件的行为的JNDI功能。 增加了五个新的根证书。 许多漏洞被修复。 |
Java SE 5 Update 19 | 2009-05-29 | 为多个系统配置增加支持。 增加了服务标签(Service Tag)支持。 许多漏洞被修复,包括几个崩溃和存储器泄漏。 |
Java SE 5 Update 20 | 2009-08-06 | 解决了几个安全漏洞,例如不受信任的小程序的潜在系统访问,以及图像处理和Unpack200中的整数溢出。 添加了几个新的根证书。 许多其它小漏洞已修复。 |
Java SE 5 Update 21 | 2009-09-09 | 许多小漏洞被修复。 |
Java SE 5 Update 22 | 2009-11-04 | 此版本标记Java 5的End Of Service Life(EOSL),并且是其最终的公开版本。 在报告Sun Alerts 269868、270474、270475和270476中的几个安全漏洞已修复。 其他几个漏洞已修复。 此外,还增加了两个新的根证书。 |
Java SE 6
代号为Mustang。版本发布于2006年12月11日,Sun把原本的名称“J2SE”改为“Java SE”,然后再从版本号中去掉“.0”[24],而开发者内部编号仍然是1.6.0。[25]这个版本是根据JSR 270(页面存档备份,存于互联网档案馆)开发的。
在发展阶段,新版本大约每一周都会发布一些功能增强和漏洞的修复。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集成。
- 核心平台[28][29]和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).[30]
- 改善许多GUI,像是SwingWorker在API中的集成,表格排序和筛选,以及真正的Swing双缓冲(消除模糊区域效果)。
- 包含JVM改善:同步和编译器性能优化,新算法和对现有垃圾收集算法的升级以及应用程式启动性能。[谁说的?]
Java 6可以安装到在64位(Core 2 Duo和更高版本)处理器机器上运行的Mac OS X 10.5(Leopard)。[31] 运行Mac OS X 10.6(Snow Leopard)的32位和64位机器也支持Java 6。
Java 6在2013年2月到了它支持生命周期的尾声,此时所有公开更新(包括安全更新)都计划停止。[32][33] Oracle在2013年3月和4月发布了另外两个对Java 6的更新,修补了一些安全漏洞。[34][35]
Java 6 更新
JAVA 6发布后,Sun和后来的Oracle,发布了几个更新,而不更改任何公开的API,增强了最终用户的可用性或固定的漏洞。Oracle曾声明,自2016 年1月,JAVA 6和其它更旧的版本已无法从Oracle下载[36];但在此之后,Oracle于其官网重新提供各个旧版本的下载(需要登录Oracle帐户)[37]。
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 6 | 2006-12-23 | 此版本在Web服务、脚本和数据库,可插入的注解、安全性以及质量、兼容性和稳定性等领域增强了许多功能。 现在也正式支持JConsole。 已增加对Java DB的支持。 |
Java SE 6 Update 1 | 2007-05-07 | |
Java SE 6 Update 2 | 2007-07-03 | |
Java SE 6 Update 3 | 2007-10-03 | |
Java SE 6 Update 4 | 2008-01-14 | HotSpot VM 10 |
Java SE 6 Update 5 | 2008-03-05 | 消除了几个安全漏洞。 现在包括了来自AOL、DigiCert和TrustCenter的新的根证书。 |
Java SE 6 Update 6 | 2008-04-16 | 引入了对臭名昭彰的Xlib / XCB锁定断言问题的解决方法。 当以LoginContext使用Kerberos认证时内存泄漏的问题已被修复。 其它几个漏洞已修复。 |
Java SE 6 Update 7[38] | 非正式记载的,Java SE 6 Update 7(1.6.0.7)显示为在Win9x系列操作系统上工作的Java的最后一个版本[来源请求] | |
Java SE 6 Update 10[39] | 2008-10-15 | HotSpot VM 11. 此更新的主要更改包括:
|
Java SE 6 Update 11[44] | 2008-12-03 | 13个安全性漏洞修正[45] |
Java SE 6 Update 12[46] | 2008-12-12 | 没有安全性修复;64位的Java插件(仅适用于64位的网页浏览器);支持Windows Server 2008;图形和JavaFX应用程式的性能改进 |
Java SE 6 Update 13[47] | 2009-03-24 | 7个安全性漏洞修复,稍作修改JNDI存取LDAP中的Java物件,JMX变更(createMBeanunregisterMBean),添加了4个新的根证书 |
Java SE 6 Update 14[48] | 2009-05-28 | HotSpot VM 14. 此版本包括对JIT编译器的大量性能更新,用于64位机器的压缩指针,以及对G1(Garbage First)低暂停的垃圾回收器的支持。[49][50]
-XX:+DoEscapeAnalysis 选项直接指向HotSpot JIT compiler以使用escape analysis来决定本地端物件是否可以被分配到stack上而不是heap里[51] 一些开发人员已经注意到这个版本中引入的一个问题,它导致调试器似乎是随意地错过断点(breakpoints)。[52] Sun有一个相应的漏洞,也是一个追踪问题。 解决方法适用于客户端和服务端的虚拟机。[53] 使用 -XX:+UseParallelGC 选项将可以避免错误。另一个解决方案是降版到update 13,或是升级到update 16。 |
Java SE 6 Update 15 | 2009-08-04 | 加入了patch-in-place 功能[54] |
Java SE 6 Update 16 | 2009-08-11 | 修复了update 14中导致调试器错过断点的问题。[55] |
Java SE 6 Update 17[56] | 2009-11-04 | 安全修复;两个新的根证书 |
Java SE 6 Update 18[57] | 2010-01-13 | 没有安全性漏洞修复;Hotspot VM 16;支持Ubuntu 8.04 LTS桌面版、SLES 11、Windows 7、Red Hat Enterprise Linux 5.3、Firefox 3.6、VisualVM 1.2;更新过的Java DB;许多性能改进 |
Java SE 6 Update 19[58] | 2010-03-30 | 安全性漏洞修复;根证书更动:加入七个新的,删除三个,五个替换为更强的签署算法;对TLS重新谈判攻击的临时修补 |
Java SE 6 Update 20[59] | 2010-04-15 | 2个安全性漏洞修补 |
Java SE 6 Update 21[60] | 2010-07-07 | 没有安全性漏洞修复;Hotspot VM 17;支持 Red Hat Enterprise Linux 5.4和5.5、Oracle Enterprise Linux 4.8, 5.4, 5.5、Google Chrome 4与客制读取进度指示器(Customized Loading Progress Indicators);VisualVM 1.2.2 |
Java SE 6 Update 22[61] | 2010-10-12 | 29个安全性漏洞修补; 支持RFC 5746 |
Java SE 6 Update 23[62] | 2010-12-08 | 没有安全性漏洞修复;Hotspot VM 19;对由右至左的语言有更好的支持 |
Java SE 6 Update 24[63] | 2011-02-15 | 21个安全性漏洞修补;更新 Java DB |
Java SE 6 Update 25 | 2011-03-21 | 没有安全性漏洞修复;Hotspot VM 20;支持 Internet Explorer 9、Firefox 4和Chrome 10;改善BigDecimal;包含“分层”编译在伺服器虚拟机以激活它来跟客户端需拟机一样的快速开启,当达到更好的尖峰表现性能(这个功能要激活 -server 和 -XX:+TieredCompilation 指令选项)[64] |
Java SE 6 Update 26[65] | 2011-06-07 | 17新的安全性漏洞修补;[66] 最新的版本能够和Windows Vista SP1兼容 |
Java SE 6 Update 27[67] | 2011-08-16 | 没有安全性漏洞修复;给Firefox 5的新证书 |
Java SE 6 Update 29[68] | 2011-10-18 | 20个安全性漏洞修补;其它许多种漏洞的修补[69] |
Java SE 6 Update 30[70] | 2011-12-12 | 没有安全性漏洞修复;修补SSL回归在Update 29;支持Red Hat Enterprise Linux 6 |
Java SE 6 Update 31[71] | 2012-02-14 | 14个安全性漏洞修补和一个漏洞修复;最新的版本能够够可靠的在Windows 2000上工作[72] |
JAVA SE 6 Update 32[73] | 2012-04-26 | 没有安全性漏洞修复;其它许多种漏洞的修补 |
Java SE 6 Update 33[74] | 2012-06-12 | 14个安全性漏洞修补, 改善VM配置文件的读取 |
Java SE 6 Update 34[75] | 2012-08-14 | 没有安全性漏洞修复;其它许多种漏洞的修补 |
Java SE 6 Update 35[76] | 2012-08-30 | 包含一个深度的安全修补 |
Java SE 6 Update 37[77] | 2012-10-16 | 30个安全性漏洞修补 |
Java SE 6 Update 38[78] | 2012-12-11 | 其它许多种漏洞的修补[79] |
Java SE 6 Update 39[80] | 2013-02-01 | 50个安全性漏洞修补 |
Java SE 6 Update 41[81] | 2013-02-19 | 5个安全性漏洞修补 |
Java SE 6 Update 43[82] | 2013-03-04 | 2个安全性漏洞修补 |
Java SE 6 Update 45[83] | 2013-04-16 | 42个安全性漏洞修补;[84] 其它的一些改变; 最后的公开更新。[85] 自2016年1月起,Java 6(或更早的版本)没办法再从Oracle下载 |
Java SE 6 Update 51[86] | 2013-06-18 | 不公开,只能透过Java SE支持计划和在Apple Update for OS X Snow Leopard、Lion 和 Mountain Lion 中;最多达到40个安全性漏洞修复[87] |
Java SE 6 Update 65[88] | 2013-10-15 | 不公开,只能透过Java SE支持计划和在Apple Update for OS X Snow Leopard、Lion 和 Mountain Lion 中;最少11个重要的安全性漏洞修复[89] |
Java SE 6 Update 71[90] | 2014-01-14 | 不公开下载;33个漏洞修复[91] |
Java SE 6 Update 75[92] | 2014-04-15 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster no. #54 提供;25个安全性漏洞修复[93] |
Java SE 6 Update 81[94] | 2014-07-15 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;11个安全性漏洞修复[95] |
Java SE 6 Update 85[96] | 2014-10-16 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;18个安全性漏洞修复[97] |
Java SE 6 Update 91[98] | 2015-01-21 | Linux x64和Windows i586的版本可在Java SE 6参考实现中使用。[99] 其他版本只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;15个安全性漏洞修复[100] |
Java SE 6 Update 95 | 2015-04-14 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;14个安全性漏洞修复[101] |
Java SE 6 Update 101 | 2015-07-15 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;18个安全性漏洞修复。[102] 给IE 10和11的证书在1.6.0_101版本中被引入 |
Java SE 6 Update 105 | 2015-10-20 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;17个安全性漏洞修复[103] |
Java SE 6 Update 111 | 2016-01-20 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;17个安全性漏洞修复[104] |
Java SE 6 Update 113 | 2016-02-05 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;1个安全性漏洞修复[105] |
Java SE 6 Update 115 | 2016-04-21 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;8个安全性漏洞修复[106] |
Java SE 6 Update 121 | 2016-07-19 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;15个安全性漏洞修复[107] |
Java SE 6 Update 131 | 2016-10-18 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;12个安全性漏洞修复[108] |
Java SE 7
JAVA 7 (代号Dolphin[109]) 是一个重大的更新,在 2011年7月7日亮相[110],并在2011年7月28日开放给开发者使用。[111]发展时期被分类成十三个重要阶段,最后一个阶段在2011年6月6日完成。[112][113]平均来看,每个里程碑各有8个版本(就是一般包括的功能增强和漏洞修复) 。在 OpenJDK 7 项目中的功能清单(页面存档备份,存于互联网档案馆)中列出了很多的改变。
在 Java 7 中新增的功能包括:[114]
- JVM本身对动态语言的支持:新的
invokedynamic
字节码指令(JSR-292(页面存档备份,存于互联网档案馆)),与多语言虚拟机(Multi Language Virtual Machine)原型 - 64位指针压缩[115](Java 6 中可以使用 XX:+UseCompressedOops 开启)[116]
- 一些语言方面的小改变(在Coin项目下的一个小群体):[117]
- JSR 166下的并发实用工具[125]
- 新的文件 I/O 程序库 (JSR 203 定义) 增加多重文件的支持、文件原始资料和符号链接。新的包为:java.nio.file、java.nio.file.attribute和java.nio.file.spi[126][127]
- 使用 Timsort 来为集合与数组排序,取代归并排序
- 对椭圆曲线加密算法增加标准库级别的支持
- 一个给Java 2D的XRender传递途径,改进了现代GPUs特有的功能的处理
- 用于图形功能的新平台API(最初在版本6u10中的实现为不支持的API)[128]
- 增强了对新网络通讯协议(包括SCTP和Sockets Direct Protocol)的标准库级别的支持
- 更新对XML和Unicode的支持,以符合最新标准
- Java部署规则集[129]
Lambda(Java 对匿名函数的实现)、Jigsaw(Java 对模块化的实现),以及其它一些 Coin 项目中的内容在 Java 7 里被放弃,而转为Java 8一部分(其中 Jigsaw 直至 Java 9 才得到实现)。[130]
从2012年4月开始,Java 7 一直是java.com的默认下载版本,直到 Java 8 发布。[131]
Java 7 更新
Oracle 在每季度发布 Java 7 家族每季的公开更新,至2015年4月产品支持生命周期[132]结束时停止。[133]
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 7[134] | 2011-07-28 | 初始版本;HotSpot VM 21 |
Java SE 7 Update 1[135] | 2011-10-18 | 20个安全漏洞修补;其它漏洞修补 |
Java SE 7 Update 2[136] | 2011-12-12 | 没有安全漏洞修补;HotSpot VM 22;可靠性和性能改进;支持 Solaris 11 和 Firefox 5 之后的版本;JavaFX 包含 Java SE JDK, 改善了网页部属的应用程式。 |
Java SE 7 Update 3[137] | 2012-02-14 | 14个安全漏洞修补[138] |
Java SE 7 Update 4[139] | 2012-04-26 | 没有安全漏洞修补;HotSpot VM 23; JDK 支持 Mac OS X |
Java SE 7 Update 5[140] | 2012-06-12 | 14个安全漏洞修补[141] |
Java SE 7 Update 6[142] | 2012-08-14 | JavaFX 和 Java Access Bridge 被包含在 Java SE JDK 和 JRE 安装里面, JavaFX 支持触屏和触摸板, JavaFX 支持 Linux, JDK 和 JRE 支持 Mac OS X, JDK 在 ARM 上支持 Linux [143] |
Java SE 7 Update 7[144] | 2012-08-30 | 4个安全漏洞修补[145] |
Java SE 7 Update 9[146] | 2012-10-16 | 30个安全漏洞修补[147] |
Java SE 7 Update 10[148] | 2012-12-11 | 新的安全性功能,像是禁用任何Java应用程式在浏览器中运行的能力,以及当JRE处于不安全状况时发出警告的新对话框,另外也有一些漏洞修复 |
Java SE 7 Update 11[149] | 2013-01-13 | Olson Data 2012i;修复了在安装了JavaFX的独立版本的系统上插件注册问题, CVE-2013-0422 的安全修复;[150] Java applet和Web启动应用程式的默认安全级别已从“中”增加到“高” |
Java SE 7 Update 13[151] | 2013-02-01 | 50个安全漏洞修补 |
Java SE 7 Update 15[152] | 2013-02-19 | 5个安全漏洞修补 |
Java SE 7 Update 17[153] | 2013-03-04 | 2个安全漏洞修补 |
Java SE 7 Update 21[154] | 2013-04-16 | 许多的改变,包括 42 个安全漏洞修补, 新的不包含插件的伺服器JRE , 以及以 ARM 架构运行的Linux上的 JDK |
Java SE 7 Update 25[155] | 2013-06-18 | 许多的改变,包括 40 个安全漏洞修补[156] |
Java SE 7 Update 40[157] | 2013-09-10 | 621个漏洞修补;[158] 新的安全性功能, hardfloat ARM, Java 任务控制(Java Mission Control) 5.2和Retina Display支持[159] |
Java SE 7 Update 45[160] | 2013-10-15 | 51个安全漏洞修补;[161] 防止Java应用程式在未经授权时的重新分发;恢复安全提示;JAXP变化;TimeZone.setDefault的更改 |
Java SE 7 Update 51[162] | 2014-01-14 | 36 个安全漏洞修补; 屏蔽没有表明身份的JAVA小程序(如远程控制台-Java Applet-IBM IMM卡、HP iLO卡),即使警告对话框中有“将在下一版本中被屏蔽”,[163][164] 17 个漏洞修补 |
Java SE 7 Update 55[165] | 2014-04-15 | 37个安全漏洞修补;[166] 19个漏洞修补[167] |
Java SE 7 Update 60[168] | 2014-05-28 | Java Mission Control 5.3[169],130个漏洞修补[170] |
Java SE 7 Update 65[171] | 2014-07-15 | 18个漏洞修补[172] |
Java SE 7 Update 67[173] | 2014-08-04 | 1个漏洞修补[174] |
Java SE 7 Update 71[175] | 2014-10-14 | 16个漏洞修补[176] |
Java SE 7 Update 72[177] | 2014-10-14 | 与Update 71相同的发布日期,作为Java SE 7的相对应补丁集更新(Patch Set Update,PSU);[178] 36 个漏洞修补[179] |
Java SE 7 Update 75[180] | 2015-01-20 | 12个漏洞修补;[181] SSLv3默认为禁用 |
Java SE 7 Update 76[182] | 2015-01-20 | 与Update 75相同的发布日期,作为Java SE 7的相对应补丁集更新(Patch Set Update,PSU); 97个漏洞修补[183] |
Java SE 7 Update 79[184] | 2015-04-14 | 21个安全漏洞修补;6个漏洞修补[185] |
Java SE 7 Update 80[186] | 2015-04-14 | Java 7的最后一个公开版本;与Update 79相同的发布日期,作为Java SE 7的相对应补丁集更新(Patch Set Update,PSU);104个漏洞修补[187] |
Java SE 7 Update 85 | 2015-07-15 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;25个安全漏洞修补 |
Java SE 7 Update 91 | 2015-10-20 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;20个安全漏洞修补 |
Java SE 7 Update 95 | 2016-01-19 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;8个安全漏洞修补[104] |
Java SE 7 Update 97 | 2016-02-05 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;1个安全漏洞修补[105] |
Java SE 7 Update 99 | 2016-03-23 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;1个安全漏洞修补[188] |
Java SE 7 Update 101 | 2016-04-18 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;9个安全漏洞修补 |
Java SE 7 Update 111 | 2016-07-19 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;36个安全漏洞修补 |
Java SE 7 Update 121 | 2016-10-18 | 不公开,只能透过Java SE支持计划和Solaris 10的Recommended Patchset Cluster 提供;32个安全漏洞修补 |
Java SE 8
Java 8 于2014年3月18日发布,[189][190] 包含了一些原本被项目在 Java 7却延迟的功能。[191]
这些功能改进在 JDK Enhancement Proposals (JEPs) 的指导下得到了集成。[192]
- JSR 335,JEP 126:Lambda项目[193]中提供的语言级匿名函数支持(官方称为 lambda 表达式,非官方亦称闭包);添加默认方法(虚拟扩展组件方法)[194][195][196] ,以允许在不破坏兼容性的情况下向现有接口中新增方法。Java社群中曾经有过针对是否要加入 lambda 表达式支持的辩论。稍后Sun公司宣布 lambda 表达式将会包含在Java中,并请社群协助改善该特性。支持lambda表达式使得针对流中元素的函数式操作成为可能,由此可以实现由 MapReduce 启发的函数式集合操作。默认方法允许API作者添加新的方法到现有接口上,而不会破坏旧的代码中。默认方法还使得多重继承的行为 (不是状态)成为可能,但默认方法的设计意图并非在此。
- JSR 223,JEP 174:Nashorn项目,一个 JavaScript 运行时,它允许开发人员在应用程式中嵌入 JavaScript 代码
- JSR 308,JEP 104:在 Java 类型上的注解[197]
- 无符号整数算术[198]
- JSR 337,JEP 120:重复注解[199]
- JSR 310,JEP 150:日期和时间 API[200],基于Joda-Time日期时间处理库的实现。
- JEP 178:静态链接 JNI 程序库[201]
- JEP 153:执行 JavaFX 应用程式(直接执行 JavaFX 的应用程式的 JAR 包)[202]
- JEP 122:移除了虚拟机内存管理中的永久世代[203]
Java 8 不再支持 Windows XP[204] ,但JDK 8 第 25 版更新仍然可以在 Windows XP安装和运行。[205] 先前JDK 8的更新版本可以在XP中运行,但必须通过强制解压安装程序来进行安装。
2014年10月后,Java 8 成为官方网站上默认的下载版本。[206]
Java 8 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 8 | 2014-03-18 | 初始版本 |
Java SE 8 Update 5[207] | 2014-04-15 | 使用“*”在 Caller-Allowable-Codebase 属性中; 11个漏洞的修补 |
Java SE 8 Update 11[208] | 2014-07-15 | Java 依赖性分析工具(Java Dependency Analysis Tool); Java 控制台选项以禁用赞助者; JAR 文件属性 – Entry-Point; JAXP 处理限制属性 – maxElementDepth; 18 个安全性漏洞修补,[209] 15 个漏洞修补 |
Java SE 8 Update 20[210] | 2014-08-19 | 669 个漏洞修补,[211] JMC 5.4, 字符串重复数据删除(默认为不激活) |
Java SE 8 Update 25[212] | 2014-10-14 | 10 个漏洞修补 |
Java SE 8 Update 31[213] | 2015-01-19 | 26 个漏洞修补; SSLv3默认为禁用 |
Java SE 8 Update 40[214] | 2015-03-03 | 645 个漏洞修补[215] 加入“存储器压力”的概念来协助指出有多少的系统存储器还能够使用(低压 = 高存储器, 高压 = 低存储器) |
Java SE 8 Update 45[216] | 2015-04-14 | 13 个漏洞修补 |
Java SE 8 Update 51[217] | 2015-07-14 | 增加对WIndows平台的原生沙盒的支持(默认为禁用); 另外还有 25 个安全性修补,14 个漏洞修补 |
Java SE 8 Update 60[218] | 2015-08-18 | 480 个漏洞修补[219] |
Java SE 8 Update 65[220] | 2015-10-20 | 25 个安全性修补, 3 个漏洞修补 |
Java SE 8 Update 66[221] | 2015-11-16 | 15 个漏洞修补 |
Java SE 8 Update 71[222] | 2016-01-19 | 8 个安全性修补, 5 个漏洞修补[223] |
Java SE 8 Update 72 | 2016-01-19 | 8 个安全性修补, 5 个漏洞修补, 许多的增强 |
Java SE 8 Update 73[224] | 2016-02-03 | 1 个安全性修补 |
Java SE 8 Update 74[225] | 2016-02-03 | 1 个安全性修补 |
Java SE 8 Update 77[226] | 2016-03-23 | 1 个安全性修补 |
Java SE 8 Update 91[227] | 2016-04-19 | 9 个安全性修补, 4 个漏洞修补和增强 |
Java SE 8 Update 92[228] | 2016-04-19 | 来自8u91的安全性和漏洞修补, 再加上 76 个额外的漏洞消补; 推出 ExitOnOutOfMemoryError 和CrashOnOutOfMemoryError 标签 |
Java SE 8 Update 101[229] | 2016-07-19 | 来自8u92的安全性和漏洞修补, 再加上 9个额外的漏洞消补 |
Java SE 8 Update 102[230] | 2016-07-19 | 来自8u101的安全性和漏洞修补, 再加上 118 个额外的漏洞消补 |
Java SE 8 Update 111[231] | 2016-10-18 | 安全性修补和 9 个漏洞修补 |
Java SE 8 Update 112[232] | 2016-10-18 | 新增功能和139个漏洞修补在8u111 |
Java SE 9
在2011年的JavaOne中,Oracle讨论了一些他们希望在2016年于Java 9中发布的功能。[233]Java 9 应当对千兆级堆拥有更好的支持,同时能够更好地集成本机代码,且拥有新的垃圾收集器G1和能够自我调节的JVM。[234]2016年初,Java 9 的发布被重新定为2017年3月;2017年3月时,发布日期又被拖延至2017年7月;[235]后来又因Java执行委员会对Jigsaw项目实现的分歧而最终定为2017年9月21日,在此期间Oracle回应了部分疑问,并对一些重要的技术问题进行了修正。在2017年6月的最后几天,JCP对拟议的模块系统方案达成了共识。
- JSR 376:在Jigsaw项目中将JDK模块化(参见Java平台模块系统条目)[236][237][238]
- JEP 222:jshell:Java Shell(一个 Java 交互式顶层构件)[239][240]
- JEP 295:AOT编译(通过 Graal VM 实现)[241]
- JEP 268:XML Catalogs[242]
- JEP 266:更多的并发更新。[243]包含响应式流的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 9[244] | 2017-09-21 | 初始版本 |
Java SE 9.0.1[245] | 2017-10-17 | 安全性修补和严重漏洞修补 |
Java SE 9.0.4[246] | 2018-01-16 | JDK 9 的最终版本。安全性修补和严重漏洞修补 |
Java SE 10
OpenJDK 10 于2018年3月20日发布。此次更新包含以下12个新特性:
- JEP 286:局部变量类型推断
- JEP 296:将所有JDK分支集成到同一个版本库中
- JEP 310:应用程式类级别数据共享
- JEP 304:垃圾回收器接口
- JEP 307:适用于G1的多线程完全垃圾回收
- JEP 312:线程本地握手
- JEP 313:删除本地代码头文件生成器javah
- JEP 314:更多的Unicode语言标签扩展
- JEP 316:在可选的内存装置上申请堆内存空间
- JEP 317:实验性的基于Java的JIT编译器。这是 Linux x64 下 Graal 动态编译器的集成。
- JEP 319:内建根证书
- JEP 322:基于时间的版本命名
第一个 JEP,JEP 286 局部变量类型推断,允许使用 var 关键字,使编译器推断出局部变量的实际类型。 所以我们可以这样做:
var list = new ArrayList<String>(); // 推斷為 ArrayList<String>
var stream = list.stream(); // 推斷為 Stream<String>
Java 10 更新
版本 | 发布日期 | 亮点 |
---|---|---|
Java SE 10[247] | 2018-03-20 | 初始版本 |
Java SE 10.0.1[248] | 2018-04-17 | 安全性修补和五个漏洞修补 |
Java SE 10.0.2[249] | 2018-07-17 | JDK 10 的最终版本。安全性修补和七个漏洞修补 |
Java SE 11
JDK 11 于2018年9月25日发布[250]。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 11[251] | 2018-09-25 | 初始版本 |
Java SE 11.0.1[252] | 2018-10-16 | 安全性修补和漏洞修补 |
Java SE 11.0.2[253] | 2019-01-15 | 安全性修补和漏洞修补 |
Java SE 11.0.3[254] | 2019-04-16 | 新功能,安全性修补和漏洞修补 |
Java SE 11.0.4[255] | 2019-07-16 | 新功能,安全性修补和漏洞修补;HotSpot 现在可以正确地侦测 Windows Server 2019 |
Java SE 11.0.5[256] | 2019-10-15 | 新功能,安全性修补和漏洞修补 |
Java SE 11.0.6[257] | 2020-01-14 | 新功能,安全性修补和漏洞修补 |
Java SE 11.0.7[258] | 2020-04-14 | 新功能,安全性修补和漏洞修补 |
Java SE 11.0.8[259] | 2020-07-14 | 新功能,安全性修补和漏洞修补 |
Java SE 11.0.9[260] | 2020-10-20 | 新功能,安全性修补和漏洞修补 |
Java SE 11.0.10[261] | 2021-01-19 | 新功能,安全性修补和漏洞修补 |
Java SE 11.0.11[262] | 2021-04-20 | 新功能,安全性修补和漏洞修补 |
Java SE 12
JDK 12 于2019年3月19日发布。该版本包含较多新特性,例如:
- JEP 189:Shenandoah:一个实验性的低延迟垃圾收集器[263]
- JEP 230:细粒度性能评审包[264]
- JEP 325:Switch 表达式(预览阶段)[265]
- JEP 334:JVM Constants API[266]
- JEP 340:仅保留一个 AArch64 平台的移植[267]
- JEP 341:默认类数据共享归档[268]
- JEP 344:针对G1,提供可中止的混合垃圾收集[269]
- JEP 346:针对G1,及时释放已申请但未使用的内存[270]
预览功能 JEP 325 扩展了 switch 语句,使它可以用作表达式,并添加了一种新形式的 case 标签,其中右侧是表达式。
不需要break语句。 对于复杂的表达式,可以使用yield
语句。 这在 Java SE 14 中成为了标准。
int ndays = switch(month) {
case JAN, MAR, MAY, JUL, AUG, OCT, DEC -> 31;
case APR, JUN, SEP, NOV -> 30;
case FEB -> {
if (year % 400 == 0) yield 29;
else if (year % 100 == 0) yield 28;
else if (year % 4 == 0) yield 29;
else yield 28; }
};
Java 12 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 12[271] | 2019-03-19 | 初始版本 |
Java SE 12.0.1[272] | 2019-04-16 | 日本新年号名称和安全性修补 |
Java SE 12.0.2[272] | 2019-07-16 | 移除功能和设置 |
Java SE 13
JDK 13 于2019年9月17日发布。该版本包含以下新特性以及很多的强化和很多的漏洞修补。[273]
- JEP-350: 动态 CDS 归档[274]
- JEP-351: ZGC: 取消提交未使用存储器[275]
- JEP-353: 重新实现旧版 Socket API[276]
- JEP-354: Switch 表达式(预览阶段)[277]
- JEP-355: 文本框(预览阶段)[278]
JEP 355 文本框 允许多行字符串文字:
String html = """
<html lang="en">
<body>
<p>Hello, world</p>
</body>
</html>
""";
Java 13 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 13[279] | 2019-09-17 | 初始版本 |
Java SE 13.0.1[280] | 2019-10-15 | 安全性修补和漏洞修补 |
Java SE 13.0.2[281] | 2020-01-14 | 安全性修补和漏洞修补 |
Java SE 14
JDK 14 发布于 2020 年 3 月 17 日。Java 14 包含了下方列出的新功能,以及“数百个小改进和数千个漏洞修复”[282]。
- 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(孵化中)
JEP 305, 使用 instanceof 的模式匹配 简化了instanceof测试的常见情况,紧接着进行强制转换。将
if (obj instanceof String) {
String s = (String) obj;
System.out.println( s.length() );
}
取代为
if (obj instanceof String s) {
System.out.println( s.length() );
}
JEP 359 记录类 允许轻松创建简单的不可变多元组类[283]。
Java 14 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 14[284] | 2020-03-17 | 初始版本 |
Java SE 14.0.1[285] | 2020-04-14 | 安全性修补和漏洞修补 |
Java SE 14.0.2[286] | 2020-07-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 15 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 15[287] | 2020-09-15 | 初始版本 |
Java SE 15.0.1[288] | 2020-10-20 | 安全性修补和漏洞修补 |
Java SE 15.0.2[289] | 2021-01-19 | 安全性修补和漏洞修补 |
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 16 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 16[290] | 2021-03-16 | 初始版本 |
Java SE 16.0.1[291] | 2021-04-20 | 时区数据库更新;安全性修补和漏洞修补 |
Java SE 16.0.2[292] | 2021-07-20 | 安全性修补和漏洞修补 |
Java SE 17
JDK 17 发布于2021年9月14日。Java 17是切换到新的6个月发布周期以来的第二个长期支持(LTS)版本(第一个是Java 11)[293]。
- 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:限定上下文的反序列化过滤器
JEP 406 将 instanceof 操作中使用的模式匹配语法扩展到 switch 语句和表达式。它允许根据参数类型、null case和精简模式来选择case
String toString(Object o) {
return switch (o) {
case null -> "Null";
case String s -> String.format("字串 %s", s);
case Long l -> String.format("長整數 %d", l);
case Double d -> String.format("浮點數 %f", d);
case Integer i && i > 0 // 精簡模式
-> String.format("正整數 %d", i);
case Integer i && i == 0
-> "零整數 0";
case Integer i && i < 0
-> String.format("負整數 %d", i);
default -> o.toString();
};
}
Java 17 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 17[294] | 2021-09-14 | 初始版本 |
Java SE 17.0.1+12[295] | 2021-10-19 | 移除了 IdenTrust Root Certificate[296];无法正确识别 Windows 11[297];透过 JDK 内建 JNDI LDAP 实现控制引用地址对象重建的系统属性;无法正确识别 Windows Server 2022[298]安全性修补[299];21 个漏洞修补[300] |
Java SE 17.0.2+8[301] | 2022-01-18 | 移除 Google 的 GlobalSign Root Certificate[302];164 个漏洞修补[303] |
Java SE 17.0.3[304] | 2022-04-19 | 新的 XML 处理限制;Only Expose Certificates With Proper Trust Settings as Trusted Certificate Entries in macOS KeychainStore;Restricted Parsing of URL Strings in Built-in JNDI Providers;48 个漏洞修补[305] |
Java SE 17.0.4+11[306] | 2022-07-19 | 支持对 Java GSS/Kerberos 的 HTTPS 通道绑定;更新 java.net.InetAddress 以检测不明确的 IPv4 地址文字;遇到 IOException 时默认 JDK 压缩器将关闭;计算活动处理器计数时忽略 CPU 份额;60 个漏洞修补 |
Java SE 17.0.5+9[307] | 2022-10-18 | 停用 SHA-1 签名 JARs;使 HttpURLConnection 默认保持活动超时可配置;将时区资料更新至 2022c;77 个漏洞修补 |
Java SE 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 18 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 18[308] | 2022-03-22 | 初始版本 |
Java SE 18.0.1[309] | 2022-04-19 | 安全性修补和漏洞修补 |
Java SE 18.0.1.1[310] | 2022-05-06 | 安全性修补和漏洞修补 |
Java SE 18.0.2[311] | 2022-07-19 | 安全性修补和漏洞修补 |
Java SE 18.0.2.1[312] | 2022-08-18 | Fixes a regression in the C2 JIT compiler[313] |
Java SE 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:结构化并发(孵化)
JEP 405 允许记录类的模式,扩展 instanceof 运算符和 switch 表达式的模式匹配功能,以包含显式引用记录组件的记录类模式。
record Rectangle(int x, int y, int w, int h) {}
int area(Object o) {
if (o instanceof Rectangle(int x, int y, int w, int h)) {
return w * h;
}
return 0;
}
此类模式可以包括嵌套模式,其中记录类的组件本身就是记录类,从而允许模式匹配更多物件图。
Java 19 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 19[314] | 2022-09-20 | 初始版本 |
Java SE 19.0.1[315] | 2022-10-18 | 安全性修补和漏洞修补 |
Java SE 19.0.2[316] | 2023-01-17 | 安全性修补和漏洞修补 |
Java SE 20
JDK 20 发布于 2023 年 3 月 21 日。
- JEP 429:作用域值(孵化)
- JEP 432:记录类的模式(第二预览版本)
- JEP 433:使用 switch 的模式匹配(第四预览版本)
- JEP 434:外部函数与内存 API(第二预览版本)
- JEP 436:虚拟线程(第二预览版本)
- JEP 437:结构化并发(第二孵化版本)
- JEP 438:Vector API(第五孵化版本)
Java 20 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 20[317] | 2023-03-21 | 初始版本 |
Java SE 20.0.1[318] | 2023-04-18 | 漏洞修补 |
Java SE 20.0.1[319] | 2023-04-18 | 漏洞修补 |
Java SE 21
JDK 21 在 2023 年 9 月 19 日发布[320]。与仅预览和孵化 JEP 的 Java 20 相比,Java 21 有 8 个 JEP 不是处于预览或孵化状态。Java 21 正式引入了在 Java 17 和 Java 19 中首次预览的功能(使用 switch 的模式匹配,和记录类的模式)。 x86 上的 32 位 Windows 版本已弃用并删除。
- JEP 430:字符串范本(预览)
- JEP 431:有序的 Collections
- JEP 439:世代 ZGC
- JEP 440:记录类的模式
- JEP 441:使用 switch 的模式匹配
- JEP 442:外部函数与存储器 API(第三预览版本)
- JEP 443:未命名模式和变量(预览)
- JEP 444:虚拟线程
- JEP 445:未命名的类别和实例 main 方法(预览)
- JEP 446:作用域值(预览)
- JEP 448:Vector API(第六孵化版本)
- JEP 449:弃用 Windows 32 位 x86 端口以待后续移除
- JEP 451:准备禁止动态加载代理
- JEP 452:密钥封装机制 API
- JEP 453:结构化并发(预览)
JEP 445 允许main方法位于未命名的类中:
void main() {
System.out.println("Hello, World!");
}
而不用:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
Java 21 更新
版本 | 发布日期 | 重点 |
---|---|---|
Java SE 21[321] | 2023-09-19 | 初始版本 |
Java SE 21.0.1[322] | 2023-10-17 | 漏洞修正 |
Java SE 21.0.2[323] | 2024-01-16 | 漏洞修正 |
Java SE 22
JDK 22 在 2024 年 3 月 19 日发布[324]。
- JEP 423:Region Pinning for G1
- JEP 447:在super()前的语句(预览)
- JEP 454:外部函数和存储器API
- JEP 456:未命名模式和变量
- JEP 457:类别文件API
- JEP 458:启动多个原始码文件程序
- JEP 459:字符串范本(第二预览版本)
- JEP 460:Vector API(第七孵化版本)
- JEP 461:Stream Gatherers(预览)
- JEP 462:结构化并发(第二预览版本)
- JEP 463:未命名的类别和实例 main 方法(第二预览版本)
- JEP 464:作用域值(第二预览版本)
至少有一个 API 已从 Java 中删除;即从 Java 22 中删除了一个很少使用的 API(用于线程)。[325]
Java SE 23
Java 23 在 2024 年 9 月17 日发布[326]。
实现
OpenJDK 是一个自由及开放原始码软件实现在Java Platform, Standard Edition (Java SE)。
在OpenJDK之前,许多各式各样不同的公司和组织推出好几个免费的Java实现。其中一个例子是Apache Harmony。 IBM也有提供Java实现,而RedHat则是通过IcedTea项目提供它:一个用于OpenJDK的架构和集成项目。
参考文献
- ^ Clarke, Gavin. Java won't curl up and die like Cobol, insists Oracle. The Register. 2012-03-07 [2017-01-08]. (原始内容存档于2019-04-05).
- ^ Krill, Paul. Java 8 release delayed until next year. InfoWorld. 2013-04-18 [2013-05-06]. (原始内容存档于2014-09-16).
- ^ Chapter 4. The class File Format.
- ^ Oracle Java SE Support Roadmap. www.oracle.com. [2020-03-19]. (原始内容存档于2019-12-31).
- ^ Support | AdoptOpenJDK. adoptopenjdk.net. [2020-03-19]. (原始内容存档于2020-12-31).
- ^ JAVASOFT SHIPS JAVA 1.0. [2008-02-05]. (原始内容存档于2007-03-10).
- ^ Ortiz, C. Enrique; Giguère, Éric. Mobile Information Device Profile for Java 2 Micro Edition: Developer's Guide (PDF). John Wiley & Sons. 2001 [May 30, 2012]. ISBN 978-0471034650. (原始内容存档 (PDF)于2019-06-13).
- ^ Version 1.1 press release, Sun.
- ^ Taligent prepares internationalisation technology for the big time. [2017-01-08]. (原始内容存档于2019-09-05).
- ^ Version 1.2 press release, Sun.
- ^ Version 1.3 press release, Sun.
- ^ Version 1.3 full list of changes (页面存档备份,存于互联网档案馆), Sun.
- ^ Version 1.4 press release.
- ^ Version full 1.4 list of changes (页面存档备份,存于互联网档案馆).
- ^ Java™ 2 Platform 5.0 and Java for Business 5.0. Oracle Corporation. 2010 [22 Oct 2012]. (原始内容存档于2020-06-26).
- ^ Oracle Java SE Support Roadmap. [2017-01-10]. (原始内容存档于2011-11-14).
- ^ Version 1.5 press release.
- ^ Version 1.5 full list of changes.
- ^ JSR 133, 2.4 Why isn't this need met by existing specifications?. Oracle. [2017-01-11]. (原始内容存档于2020-06-29).
- ^ Goetz, Brian. Java Concurrency in Practice. Addison-Wesley. 2006: xvii. ISBN 0-321-34960-1.
- ^ Java 5.0 is no longer available on Java.com. Java.com. 2009-11-03 [2016-09-30]. (原始内容存档于2010-02-21).
- ^ Lineback, Nathan. Misc Windows 2 – Nathan's Toasty Technology page. [2016-09-30]. (原始内容存档于2021-01-27).
- ^ Version 1.5.0 or 5.0?. Oracle.com. [18 April 2016].
- ^ Java brand naming (页面存档备份,存于互联网档案馆).
- ^ Version 6 (页面存档备份,存于互联网档案馆), Java webnotes, Sun.
- ^ Version 1.6 press release (页面存档备份,存于互联网档案馆).
- ^ Version 1.6 full list of changes (页面存档备份,存于互联网档案馆).
- ^ Java Lobby (页面存档备份,存于互联网档案馆).
- ^ Mustang's HotSpot (页面存档备份,存于互联网档案馆), Sun weblogs.
- ^ Darcy, Joe. An apt replacement. 2008-08-03 [2009-07-29]. (原始内容存档于2016-09-21).
- ^ Install Java 6 on Mac OS X Leopard | Gephi, open source graph visualization software. Gephi.org. [2016-09-30]. (原始内容存档于2021-01-18).
- ^ Oracle Java SE Support Roadmap. Oracle Corporation. 19 Sep 2012 [22 Oct 2012]. (原始内容存档于2011-11-14).
- ^ Auto-update and update through Java Control Panel of JRE 6 will replace JRE 6 with JRE 7. Oracle Corporation. 19 Feb 2013 [2 Mar 2013]. (原始内容存档于2019-06-19).
- ^ Java™ SE Development Kit 6, Update 43 Release notes. Oracle Corporation. 4 Mar 2013 [4 Mar 2013]. (原始内容存档于2019-12-24).
- ^ Java™ SE Development Kit 6, Update 45 Release notes. Oracle Corporation. 4 Mar 2013 [4 Mar 2013]. (原始内容存档于2019-12-24).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2020-09-25).
- ^ 存档副本. [2022-9-23]. (原始内容存档于2021-09-15).
- ^ Java SE6 Update 7 Release Notes. Oracle. [2013-04-11]. (原始内容存档于2011-12-30).
- ^ Java SE 6 Update 10 Overview. [2017-01-12]. (原始内容存档于2009-02-28).
- ^ Java Deployment Toolkit. [2017-01-12]. (原始内容存档于2008-06-26).
- ^ Version Download and Pack200 Support. [2017-01-12]. (原始内容存档于2008-06-20).
- ^ Nimbus. [2017-01-12]. (原始内容存档于2011-08-20).
- ^ Release Notes for the Next-Generation Java Plug-In Technology. [2017-01-12]. (原始内容存档于2008-06-11).
- ^ Sun Java 6 Update 11 Available Now, Waiting on JavaFX. FindMySoft.com. [2009-11-13]. (原始内容存档于2020-06-28).
- ^ Update Release Notes, Changes in 1.6.0_11. [2017-01-12]. (原始内容存档于2020-06-26).
- ^ Changes in 1.6.0_12 (6u12). Sun Microsystems. [2009-05-30]. (原始内容存档于2009-08-30).
- ^ Changes in 1.6.0_13 (6u13). Sun Microsystems. [2012-03-07]. (原始内容存档于2009-03-27).
- ^ Update Release Notes. Sun Microsystems. [2009-05-30]. (原始内容存档于2010-02-09).
- ^ Humble, Charles. JavaOne: Garbage First. infoq.com. 2008-05-13 [2008-09-07]. (原始内容存档于2020-09-30).
- ^ Coward, Dany. Java VM: Trying a new Garbage Collector for JDK 7. 2008-11-12 [2012-01-22]. (原始内容存档于2011-12-08).
- ^ Java SE 6 Update 14 Release Notes. Sun Microsystems. [2010-01-04]. (原始内容存档于2009-08-06).
- ^ Breakpoints fail to hit under JDK 1.6.0_14. [2009-07-14]. (原始内容存档于2020-06-29).
- ^ Bug ID: 6862295 JDWP threadid changes during debugging session (leading to ignored breakpoints). [2009-07-22]. (原始内容存档于2011-07-27).
- ^ Changes in 1.6.0_15 (6u15). Sun Microsystems. [2017-01-12]. (原始内容存档于2020-06-28).
- ^ Changes in 1.6.0_16 (6u16). Sun Microsystems. 2009-08-11 [2009-08-11]. (原始内容存档于2009-09-04).
- ^ Changes in 1.6.0_17 (6u17). Sun Microsystems. 2009-11-04 [2009-11-13]. (原始内容存档于2010-06-27).
- ^ Changes in 1.6.0_18 (6u18). Sun Microsystems. 2010-01-13 [2010-01-18].
- ^ Changes in 1.6.0_19 (6u19). Sun Microsystems. 2010-03-30 [2010-03-30]. (原始内容存档于2010-04-03).
- ^ Changes in 1.6.0_20 (6u20). Sun Microsystems. 2010-04-15 [2010-04-15]. (原始内容存档于2010-06-27).
- ^ Changes in 1.6.0_21 (6u21). Sun Microsystems. 2010-07-07 [2010-07-07]. (原始内容存档于2010-07-11).
- ^ Changes in 1.6.0_22 (6u22). Oracle Corporation. 2010-10-12 [2010-10-12]. (原始内容存档于2020-04-18).
- ^ Java SE 6 Update 23. Oracle Corporation. 2010-12-08 [2010-12-08]. (原始内容存档于2019-06-29).
- ^ Java SE 6 Update 24. Oracle Corporation. 2011-02-15 [2011-02-15]. (原始内容存档于2019-12-16).
- ^ Java SE 6 Update 25. Oracle Corporation. 2011-04-11 [2011-04-24]. (原始内容存档于2020-05-05).
- ^ Java SE 6 Update 26. Oracle Corporation. 2011-06-07 [2011-06-07]. (原始内容存档于2019-12-22).
- ^ Oracle Java SE Critical Patch Update Advisory – June 2011. [2017-01-12]. (原始内容存档于2019-08-07).
- ^ Java SE 6 Update 27. Oracle Corporation. 2011-08-16 [2011-08-16]. (原始内容存档于2019-10-15).
- ^ Java SE 6 Update 29. Oracle Corporation. 2011-10-18 [2011-10-18]. (原始内容存档于2019-07-18).
- ^ Oracle Java SE Critical Patch Update Advisory – October 2011. [2017-01-12]. (原始内容存档于2019-10-10).
- ^ Java SE 6 Update 30. Oracle Corporation. [2011-12-13]. (原始内容存档于2019-12-22).
- ^ Java SE 6 Update 31. Oracle Corporation. [2012-02-17]. (原始内容存档于2019-12-24).
- ^ Java 6 Update 32 fails to install.... MSFN. [2016-07-31]. (原始内容存档于2016-08-16).
- ^ Java SE 6 Update 32. Oracle Corporation. [2012-05-03]. (原始内容存档于2020-04-25).
- ^ Java SE 6 Update 33. Oracle Corporation. [2012-06-13]. (原始内容存档于2018-10-28).
- ^ Java SE 6 Update 34. Oracle Corporation. [2012-08-15]. (原始内容存档于2018-08-31).
- ^ Java SE 6 Update 35. Oracle Corporation. [2012-08-31]. (原始内容存档于2019-11-08).
- ^ Java SE 6 Update 37. Oracle Corporation. [2012-10-23]. (原始内容存档于2019-11-08).
- ^ Java SE 6 Update 38. Oracle Corporation. [2012-12-24]. (原始内容存档于2019-11-08).
- ^ Java SE Development Kit 6 Update 38 Bug Fixes (页面存档备份,存于互联网档案馆), Oracle.com
- ^ Java SE 6 Update 39. Oracle Corporation. [2013-02-01]. (原始内容存档于2019-12-06).
- ^ Java SE 6 Update 41. Oracle Corporation. [2013-02-19]. (原始内容存档于2019-12-09).
- ^ Java SE 6 Update 43. Oracle Corporation. [2013-03-04]. (原始内容存档于2019-12-24).
- ^ Java SE 6 Update 45. Oracle Corporation. [2013-04-16]. (原始内容存档于2019-06-09).
- ^ Oracle Java SE Critical Patch Update Advisory – April 2013. [2017-01-12]. (原始内容存档于2019-08-08).
- ^ 存档副本. [2017-01-12]. (原始内容存档于2020-09-25).
- ^ Java SE Development Kit 7, Update 25 (JDK 7u25). Oracle Corporation. [2013-06-19]. (原始内容存档于2019-12-23).
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 7u25 are specified in the following table: ... 1.6.0_51
- ^ Oracle Java SE Critical Patch Update Advisory – June 2013. [2017-01-12]. (原始内容存档于2019-08-08).
- ^ Java SE Development Kit 7, Update 45 (JDK 7u45). Oracle Corporation. [2013-10-17]. (原始内容存档于2019-08-06).
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 7u45 are specified in the following table: ... 1.6.0_65
- ^ Oracle Critical Patch Update Advisory – October 2013. [2017-01-12]. (原始内容存档于2019-10-19).
- ^ Java SE Development Kit 7, Update 51 (JDK 7u51). Oracle Corporation. [2014-01-19]. (原始内容存档于2019-09-29).
The security baselines for the Java Runtime Environment (JRE) at the time of the release of JDK 7u51 are specified in the following table: ... 1.6.0_71
- ^ Java SE Development Kit 6 Update 71 Bug Fixes. Oracle Corporation. [2014-01-19]. (原始内容存档于2019-06-29).
- ^ Java SE Development Kit 6 Update 75 Bug Fixes. Oracle Corporation. [2014-05-11]. (原始内容存档于2019-06-29).
- ^ Oracle Critical Patch Update Advisory – April 2014. [2017-01-12]. (原始内容存档于2019-09-21).
- ^ Java SE Development Kit 6 Update 81 Bug Fixes. Oracle Corporation. [2014-07-16]. (原始内容存档于2019-12-22).
- ^ Oracle Critical Patch Update Advisory – July 2014. [2017-01-12]. (原始内容存档于2019-08-06).
- ^ Java SE Development Kit 6 Update 85 Bug Fixes. Oracle Corporation. [2015-01-26]. (原始内容存档于2019-12-21).
- ^ Oracle Critical Patch Update Advisory – October 2014. [2017-01-12]. (原始内容存档于2019-09-30).
- ^ Java SE Development Kit 6 Update 91 Bug Fixes. Oracle Corporation. [2015-01-26]. (原始内容存档于2018-08-31).
- ^ Java SE 6 Reference Implementation. Oracle Corporation. [2016-10-24]. (原始内容存档于2019-06-30).
- ^ Oracle Critical Patch Update Advisory – January 2015. [2017-01-12]. (原始内容存档于2019-09-21).
- ^ Oracle Critical Patch Update Advisory – April 2015. [2017-01-12]. (原始内容存档于2019-09-21).
- ^ Oracle Critical Patch Update Advisory – July 2015. [2017-01-12]. (原始内容存档于2019-09-21).
- ^ Oracle Critical Patch Update Advisory - October 2015. [2017-01-12]. (原始内容存档于2019-08-07).
- ^ 104.0 104.1 Oracle Critical Patch Update - January 2016. [2017-01-12]. (原始内容存档于2019-08-07).
- ^ 105.0 105.1 Oracle Security Alert for CVE-2016-0603. [2017-01-12]. (原始内容存档于2019-08-08).
- ^ Oracle Critical Patch Update CVSS V2 Risk Matrices - April 2016. [2017-01-12]. (原始内容存档于2019-08-06).
- ^ Oracle Critical Patch Update Advisory - July 2016. [2017-01-12]. (原始内容存档于2019-08-08).
- ^ Oracle Critical Patch Update Advisory - October 2016. [2017-01-12]. (原始内容存档于2019-08-08).
- ^ JDK7 (页面存档备份,存于互联网档案馆), Sun.
- ^ Introducing Java 7 Webcast: Moving Java Forward. Oracle Corporation. July 7, 2011 [May 30, 2012]. (原始内容存档于2016-09-21).
- ^ JDK 7 Schedule. [2017-01-10]. (原始内容存档于2021-01-08).
- ^ JDK 7 at OpenJDK. [2017-01-10]. (原始内容存档于2021-01-08).
- ^ JDK 7 Milestones. OpenJDK. Oracle Corporation. [May 30, 2012]. (原始内容存档于2020-10-30).
- ^ Miller, Alex. Java 7. [2008-05-30]. (原始内容存档于2012-02-05).
- ^ Compressed oops in the Hotspot JVM. OpenJDK. [2012-08-01]. (原始内容存档于2015-06-30).
- ^ Java HotSpot VM Options. Oracle. [2013-04-11]. (原始内容存档于2011-03-06).
- ^ Java Programming Language Enhancements. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-28).
- ^ Strings in switch Statements. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-26).
- ^ The try-with-resources Statement. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-26).
- ^ Type Inference for Generic Instance Creation. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-26).
- ^ Improved Compiler Warnings When Using Non-Reifiable Formal Parameters with Varargs Methods. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-26).
- ^ Binary Literals. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-26).
- ^ Underscores in Numeric Literals. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-26).
- ^ Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking. Download.oracle.com. [2013-01-15]. (原始内容存档于2011-10-26).
- ^ Concurrency JSR-166. [2010-04-16]. (原始内容存档于2013-07-26).
- ^ File I/O (Featuring NIO.2). Java.sun.com. 2008-03-14 [2013-01-15]. (原始内容存档于2009-03-01).
- ^ Legacy File I/O Code. Java.sun.com. 2012-02-28 [2013-01-15]. (原始内容存档于2009-06-02).
- ^ JDK 7 Features. OpenJDK. 2011-07-28 [2013-03-15]. (原始内容存档于2012-02-07).
- ^ 存档副本. [2017-01-11]. (原始内容存档于2016-11-01).
- ^ JavaOne 2011 Keynote. Oracle. [2017-01-12]. (原始内容存档于2011-10-26).
- ^ Java 7 Auto-Update and Java 6. Oracle. [2017-01-12]. (原始内容存档于2020-06-26).
- ^ Oracle Java SE Support Roadmap. Oracle Corporation. 2014-12-19 [2015-01-07]. (原始内容存档于2020-08-08).
- ^ Critical Patch Update table shows four dates per year. [2017-01-10]. (原始内容存档于2019-10-06).
- ^ Java SE 7 Release Notes. [2017-01-10]. (原始内容存档于2020-05-14).
- ^ Update Release Notes, Java SE 7 Update 1. [2017-01-12]. (原始内容存档于2019-06-29).
- ^ Update Release Notes, Java SE 7 Update 2. [2017-01-12]. (原始内容存档于2020-05-08).
- ^ Update Release Notes, Java SE 7 Update 3. [2017-01-12]. (原始内容存档于2019-11-08).
- ^ Oracle Java SE Critical Patch Update Advisory – February 2012. [2017-01-12]. (原始内容存档于2019-10-17).
- ^ Update Release Notes, Java SE 7 Update 4. [2017-01-12]. (原始内容存档于2019-07-18).
- ^ Update Release Notes, Java SE 7 Update 5. [2017-01-12]. (原始内容存档于2019-06-17).
- ^ Oracle Java SE Critical Patch Update Advisory – June 2012. [2017-01-12]. (原始内容存档于2019-09-29).
- ^ Update Release Notes, Java SE 7 Update 6. [2017-01-12]. (原始内容存档于2019-06-15).
- ^ Java SE 7 Update 6 Released. [2017-01-12]. (原始内容存档于2012-10-27).
- ^ Update Release Notes, Java SE 7 Update 7. [2017-01-12]. (原始内容存档于2019-11-08).
- ^ Oracle Security Alert for CVE-2012-4681. Oracle Corporation. [2017-01-12]. (原始内容存档于2019-10-10).
- ^ Update Release Notes, Java SE 7 Update 9. [2017-01-12]. (原始内容存档于2019-11-08).
- ^ Java SE 7 Update 9 Released. [2017-01-12]. (原始内容存档于2019-09-21).
- ^ Update Release Notes, Java SE 7 Update 10. [2017-01-12]. (原始内容存档于2020-05-08).
- ^ Update Release Notes, Java SE 7 Update 11. [2017-01-12]. (原始内容存档于2020-05-10).
- ^ Oracle Security Alert for CVE-2013-0422. Oracle Corporation. [2017-01-12]. (原始内容存档于2019-09-05).
- ^ Oracle Java SE Critical Patch Update Advisory – February 2013. [2017-01-12]. (原始内容存档于2019-08-08).
- ^ Oracle Java SE 7 U15 Release Notes. [2017-01-11]. (原始内容存档于2019-06-19).
- ^ Oracle Java SE 7 U17 Release Notes. [2017-01-12]. (原始内容存档于2020-02-27).
- ^ Oracle Java SE 7 U21 Release Notes. [2017-01-12]. (原始内容存档于2020-05-06).
- ^ Oracle Java SE 7 U25 Release Notes. [2017-01-12]. (原始内容存档于2019-12-23).
- ^ Oracle releases fixes for 40 Java holes. [2017-01-12]. (原始内容存档于2020-12-14).
- ^ Oracle Java SE 7 U40 Release Notes. [2017-01-12]. (原始内容存档于2019-10-10).
- ^ Java™ SE Development Kit 7 Update 40 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-16).
- ^ Oracle JDK 7u40 released – security features, hardfloat ARM, Java Mission Control and more. [2017-01-12]. (原始内容存档于2013-10-02).
- ^ Java SE Development Kit 7, Update 45 – Update Release Notes. [2017-01-12]. (原始内容存档于2019-08-06).
- ^ Oct 2013 CPU. [2017-01-12]. (原始内容存档于2019-10-19).
- ^ Java™ SE Development Kit 7 Update 51 Release Notes. [2017-01-12]. (原始内容存档于2019-09-29).
- ^ Oracle to patch Java, other products Tuesday (页面存档备份,存于互联网档案馆), ZDNet,
- ^ Oracle Critical Patch Update Advisory – January 2014. [2017-01-12]. (原始内容存档于2019-09-21).
- ^ Java™ SE Development Kit 7 Update 55 Release Notes. [2017-01-12]. (原始内容存档于2018-08-31).
- ^ Oracle Critical Patch Update Advisory – April 2014. [2017-01-12]. (原始内容存档于2019-09-21).
- ^ Java™ SE Development Kit 7 Update 55 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-11).
- ^ Java™ SE Development Kit 7 Update 60 Release Notes. [2017-01-12]. (原始内容存档于2019-07-18).
- ^ Java Mission Control 5.3 Release Notes. [2017-01-12]. (原始内容存档于2020-06-29).
- ^ Java™ SE Development Kit 7 Update 60 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-29).
- ^ Java™ SE Development Kit 7 Update 65 Release Notes. [2017-01-12]. (原始内容存档于2019-06-12).
- ^ Java™ SE Development Kit 7 Update 65 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-22).
- ^ Java™ SE Development Kit 7 Update 67 Release Notes. [2017-01-12]. (原始内容存档于2018-12-04).
- ^ Java™ SE Development Kit 7 Update 67 Bug Fixes. [2017-01-12]. (原始内容存档于2018-12-04).
- ^ Java™ SE Development Kit 7 Update 71 Release Notes. [2017-01-12]. (原始内容存档于2019-06-11).
- ^ Java™ SE Development Kit 7 Update 71 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-24).
- ^ Java™ SE Development Kit 7 Update 72 Release Notes. [2017-01-12]. (原始内容存档于2019-06-20).
- ^ Java CPU and PSU Releases Explained. [2017-01-12]. (原始内容存档于2019-06-22).
- ^ Java™ SE Development Kit 7 Update 72 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-15).
- ^ Java™ SE Development Kit 7 Update 75 Release Notes. [2017-01-12]. (原始内容存档于2020-06-27).
- ^ Java™ SE Development Kit 7 Update 75 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-23).
- ^ Java™ SE Development Kit 7 Update 76 Release Notes. [2017-01-12]. (原始内容存档于2019-02-17).
- ^ Java™ SE Development Kit 7 Update 76 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-08).
- ^ Java™ SE Development Kit 7 Update 79 Release Notes. [2017-01-12]. (原始内容存档于2019-06-11).
- ^ Java™ SE Development Kit 7 Update 79 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-12).
- ^ Java™ SE Development Kit 7 Update 80 Release Notes. [2017-01-12]. (原始内容存档于2019-06-13).
- ^ Java™ SE Development Kit 7 Update 80 Bug Fixes. [2017-01-12]. (原始内容存档于2019-06-09).
- ^ Java™ SE Development Kit 7, Update 99. [2017-01-12]. (原始内容存档于2020-06-04).
- ^ Proposed new schedule for Java 8. 2013-04-18 [2013-04-19]. (原始内容存档于2013-04-22).
- ^ JDK 8. OpenJDK. 2013-04-18 [2014-01-28]. (原始内容存档于2013-09-07).
- ^ JDK 8 features. OpenJDK. 2014-01-28 [2014-01-28]. (原始内容存档于2021-01-18).
- ^ JSR 337. [2014-01-30]. (原始内容存档于2020-11-11).
- ^ Java 7 Features. Sun Microsystems. 2010-02-09 [2010-04-16]. (原始内容存档于2012-02-07).
- ^ Interface evolution via virtual extension methods (PDF). Brian Goetz. 2011-07-20 [2014-03-27]. (原始内容存档 (PDF)于2016-10-22).
- ^ Lambda Expressions for the JavaTM Programming Language. Brian Goetz. 2012-10-23 [2014-03-27]. (原始内容存档于2020-06-29).
- ^ The Java Tutorials: Default Methods. Oracle. [2014-03-27]. (原始内容存档于2017-05-23).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2020-07-13).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2017-02-25).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2020-07-13).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2020-07-13).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2020-07-29).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2020-07-13).
- ^ 存档副本. [2017-01-10]. (原始内容存档于2020-11-11).
- ^ Oracle JDK 8 and JRE 8 Certified System Configurations. Oracle Corporation. [2014-04-15]. (原始内容存档于2019-12-20).
- ^ Stahl, Henrik. Updated: The future of Java on Windows XP. Oracle Corporation. 2014-07-11 [2014-11-11]. (原始内容存档于2014-11-11).
JDK 8 is not supported on Windows XP. Early versions of JDK 8 had known issues with the installer on Windows XP that prevented it from installing without manual intervention. This was resolved in JDK 8 Update 25. The important point here is that we can no longer provide complete guarantees for Java on Windows XP, since the OS is no longer being updated by Microsoft. We strongly recommend that users upgrade to a newer version of Windows that is still supported by Microsoft in order to maintain a stable and secure environment.
- ^ Blog By Tori Wieldt-Oracle on Oct 27, 2014 存档副本. [2014-11-24]. (原始内容存档于2014-11-29).
- ^ Java™ SE Development Kit 8, Update 5 (JDK 8u5). oracle.com. [2014-04-28]. (原始内容存档于2020-04-24).
- ^ Java™ SE Development Kit 8, Update 11 (JDK 8u11). oracle.com. [2014-07-16]. (原始内容存档于2020-04-26).
- ^ 18 security bug fixes. oracle.com. [2014-07-16]. (原始内容存档于2019-06-16).
- ^ Java™ SE Development Kit 8, Update 20 (JDK 8u20). oracle.com. [2014-08-27]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8 Update 20 Bug Fixes. [2017-01-10]. (原始内容存档于2019-06-30).
- ^ Java™ SE Development Kit 8, Update 25 (JDK 8u25). oracle.com. [2014-10-14]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 31 (JDK 8u31). oracle.com. [2015-01-21]. (原始内容存档于2015-01-21).
- ^ Java™ SE Development Kit 8, Update 40 (JDK 8u40). oracle.com. [2015-03-04]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8 Update 40 Bug Fixes. [2017-01-10]. (原始内容存档于2019-06-21).
- ^ Java™ SE Development Kit 8, Update 45 (JDK 8u45). oracle.com. [2015-04-15]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 51 (JDK 8u51). oracle.com. [2015-07-14]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 60 (JDK 8u60). oracle.com. [2015-08-18]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8 Update 60 Bug Fixes. [2017-01-10]. (原始内容存档于2019-05-18).
- ^ Java™ SE Development Kit 8, Update 65 (JDK 8u65). oracle.com. [2015-10-20]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 66 Release Notes. oracle.com. [22 October 2015]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 71 Release Notes. oracle.com. [20 January 2015]. (原始内容存档于2020-06-11).
- ^ Java™ SE Development Kit 8 Update 71 Bug Fixes. oracle.com. [20 January 2015]. (原始内容存档于2019-06-28).
- ^ Java™ SE Development Kit 8, Update 73 Release Notes. oracle.com. [6 February 2016]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 74 Release Notes. oracle.com. [6 February 2016]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 77 Release Notes. oracle.com. [23 March 2016]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 91 Release Notes. oracle.com. [23 March 2016]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 92 Release Notes. [23 March 2016]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 101 Release Notes. [19 July 2016]. (原始内容存档于2020-06-11).
- ^ Java™ SE Development Kit 8, Update 102 Release Notes. [19 July 2016]. (原始内容存档于2020-04-26).
- ^ Java™ SE Development Kit 8, Update 111 Release Notes. [19 October 2016]. (原始内容存档于2020-04-15).
- ^ Java™ SE Development Kit 8, Update 112 Release Notes. [19 October 2016]. (原始内容存档于2020-04-26).
- ^ Mark your calendar: Java 9 finally has a release date. [2017-01-10]. (原始内容存档于2018-08-31).
- ^ JavaOne: JavaFX 2, Java on iOS. [2017-01-10]. (原始内容存档于2011-12-08).
- ^ Cloud; Security; Australia; Vmware; Microsoft; dive, NASA starts countdown for Cassini probe's Saturn death; rc8, Linux 4 8 probably needs; Oracle takes aim at AWS with cheap, fast public and hybrid cloud. JDK 9 release delayed another four months. [2016-10-14]. (原始内容存档于2019-06-16).
- ^ Project Jigsaw. OpenJDK. [2017-01-10]. (原始内容存档于2021-01-09).
- ^ Java Module-System Requirements — DRAFT 12. Oracle. [2017-01-10]. (原始内容存档于2013-07-26).
- ^ Project Jigsaw delayed until Java 9. JavaWorld. [2017-01-10]. (原始内容存档于2013-09-07).
- ^ jshell: The Java Shell. [2017-01-10]. (原始内容存档于2020-09-25).
- ^ OpenJDK: Project Kulla. [2017-01-10]. (原始内容存档于2021-01-28).
- ^ Vladimir Kozlov. JEP 295: Ahead-of-Time Compilation. Oracle Corporation. 2016-10-13 [2016-10-13]. (原始内容存档于2018-02-07).
Compile Java classes to native code prior to launching the virtual machine.
- ^ JEP 268: XML Catalogs. Oracle Corporation. 2013-08-26 [2016-11-01]. (原始内容存档于2020-12-01).
Develop a standard XML Catalog API that supports the OASIS XML Catalogs standard, v1.1
- ^ JEP 266: More Concurrency Updates. Oracle Corporation. 2016-09-01 [2016-11-01]. (原始内容存档于2020-08-16).
Interfaces supporting the Reactive Streams publish-subscribe framework, nested within the new class Flow, along with a utility class SubmissionPublisher that developers can use to create custom components
- ^ Java Development Kit 9 Release Notes. oracle.com. 21 September 2017 [3 October 2017]. (原始内容存档于2020-03-19).
- ^ JDK 9.0.1 Release Notes. oracle.com. 2017-10-17 [2017-10-19]. (原始内容存档于2020-03-19).
- ^ JDK 9.0.4 Release Notes. oracle.com. 2018-01-16 [2018-01-16]. (原始内容存档于2020-05-29).
- ^ JDK 10 Release Notes. oracle.com. 2018-03-20 [2018-03-20]. (原始内容存档于2020-03-19).
- ^ JDK 10.0.1 Release Notes. oracle.com. 2018-04-17 [2018-04-17]. (原始内容存档于2020-06-11).
- ^ JDK 10.0.2 Release Notes. oracle.com. 2018-07-17 [2019-04-16]. (原始内容存档于2019-06-08).
- ^ Java Countdown (页面存档备份,存于互联网档案馆), Countdown to Java 11 Release Date
- ^ JDK 11. openjdk.java.net. [2019-03-29]. (原始内容存档于2020-12-10).
- ^ Java™ SE Development Kit 11, 11.0.1 Release Notes. www.oracle.com. [2019-03-29]. (原始内容存档于2020-05-29).
- ^ JDK 11.0.2 Release Notes. oracle.com. 2019-01-15 [2019-01-16]. (原始内容存档于2020-05-29).
- ^ JDK 11.0.3 Release Notes. oracle.com. 2019-04-16 [2019-04-16]. (原始内容存档于2020-05-29).
- ^ JDK 11.0.4 Release Notes. oracle.com. 2019-07-16 [2019-07-30]. (原始内容存档于2019-07-30).
- ^ JDK 11.0.5 Release Notes. oracle.com. 2019-10-15 [2019-10-16]. (原始内容存档于2020-05-29).
- ^ JDK 11.0.6 Release Notes. oracle.com. 2020-01-14 [2020-01-18]. (原始内容存档于2020-03-19).
- ^ JDK 11.0.7 Release Notes. oracle.com. 2020-04-14 [2020-04-14].
- ^ JDK 11.0.8 Release Notes. oracle.com. 2020-07-14 [2020-07-14]. (原始内容存档于2021-03-05).
- ^ JDK 11.0.9 Release Notes. oracle.com. 2020-10-20 [2020-11-03]. (原始内容存档于2021-02-28).
- ^ JDK 11.0.10 Release Notes. oracle.com. 2021-01-19 [2021-01-20]. (原始内容存档于2021-04-24).
- ^ JDK 11.0.11 Release Notes. oracle.com. 2021-04-20 [2021-04-23]. (原始内容存档于2021-06-27).
- ^ JEP 189: Shenandoah: A Low-Pause-Time Garbage Collector (Experimental). openjdk.java.net. [2019-03-29]. (原始内容存档于2020-12-22).
- ^ JEP 230: Microbenchmark Suite. openjdk.java.net. [2019-03-29]. (原始内容存档于2020-11-08).
- ^ JEP 325: Switch Expressions (Preview). openjdk.java.net. [2019-03-29]. (原始内容存档于2020-12-01).
- ^ JEP 334: JVM Constants API. openjdk.java.net. [2019-03-29]. (原始内容存档于2020-11-12).
- ^ JEP 340: One AArch64 Port, Not Two. openjdk.java.net. [2019-03-29]. (原始内容存档于2020-06-11).
- ^ JEP 341: Default CDS Archives. openjdk.java.net. [2019-03-29]. (原始内容存档于2020-11-12).
- ^ JEP 344: Abortable Mixed Collections for G1. openjdk.java.net. [2019-03-29]. (原始内容存档于2020-12-01).
- ^ JEP 346: Promptly Return Unused Committed Memory from G1. openjdk.java.net. [2019-03-29]. (原始内容存档于2020-11-09).
- ^ JDK 12. openjdk.java.net. 2019-03-19 [2019-03-19]. (原始内容存档于2019-12-28).
- ^ 272.0 272.1 JDK 12.0.1 Release Notes. openjdk.java.net. 2019-04-16 [2019-04-16]. (原始内容存档于2019-12-28).
- ^ oracle.com, mark reinhold at. Java 13 / JDK 13: General Availability. September 17, 2019 [2020-03-19]. (原始内容存档于2020-09-19).
- ^ JEP 350: Dynamic CDS Archives. openjdk.java.net. [2020-03-19]. (原始内容存档于2020-12-01).
- ^ JEP 351: ZGC: Uncommit Unused Memory (Experimental). openjdk.java.net. [2020-03-19]. (原始内容存档于2020-12-01).
- ^ JEP 353: Reimplement the Legacy Socket API. openjdk.java.net. [2020-03-19]. (原始内容存档于2020-12-01).
- ^ JEP 354: Switch Expressions (Preview). openjdk.java.net. [2020-03-19]. (原始内容存档于2020-12-01).
- ^ JEP 355: Text Blocks (Preview). openjdk.java.net. [2020-03-19]. (原始内容存档于2020-12-04).
- ^ JDK 13. openjdk.java.net. 2019-09-17 [2019-09-17]. (原始内容存档于2021-01-29).
- ^ JDK 13.0.1 Release Notes. oracle.com. 2019-10-15 [2019-10-16]. (原始内容存档于2020-05-29).
- ^ Java™ SE Development Kit 13, 13.0.2 Release Notes. www.oracle.com. [2020-01-15]. (原始内容存档于2020-01-15).
- ^ oracle.com, mark reinhold at. Java 14 / JDK 14: General Availability. March 17, 2020 [2021-02-20]. (原始内容存档于2021-03-09).
- ^ Evans, Ben. Records Come to Java. Java Magazine. Oracle. January 10, 2020 [10 July 2021]. (原始内容存档于2021-08-02).
- ^ JDK 14. openjdk.java.net. 2020-03-17 [2020-04-01]. (原始内容存档于2021-04-24).
- ^ Java SE Development Kit 14, 14.0.1 Release Notes. www.oracle.com. [2020-04-14]. (原始内容存档于2021-03-09).
- ^ Java SE Development Kit 14, 14.0.2 Release Notes. www.oracle.com. [2020-07-23]. (原始内容存档于2021-05-03).
- ^ JDK 15. openjdk.java.net. 2020-09-15 [2020-09-16]. (原始内容存档于2022-05-21).
- ^ JDK 15.0.1 Release Notes. www.oracle.com. 2020-10-20 [2020-10-21]. (原始内容存档于2023-04-18).
- ^ JDK 15.0.2 Release Notes. www.oracle.com. 2021-01-19 [2021-01-25]. (原始内容存档于2023-04-08).
- ^ JDK 16. openjdk.java.net. [2021-02-19]. (原始内容存档于2022-04-04).
- ^ JDK 16.0.1 Release Notes. Oracle. 2021-04-20 [2021-04-28]. (原始内容存档于2023-05-30).
- ^ JDK 16.0.2 Release Notes. Oracle. 2021-07-20 [2021-07-22]. (原始内容存档于2023-07-15).
- ^ JDK 17. openjdk. [2021-11-15]. (原始内容存档于2022-04-01).
- ^ JDK 17. openjdk.java.net. 2021-06-17 [2021-06-22]. (原始内容存档于2023-10-26).
- ^ JDK 17.0.1 Release Notes. www.oracle.com. 2021-10-19 [2021-10-22]. (原始内容存档于2023-10-30).
- ^ Remove IdenTrust certificate that is expiring in September 2021. openjdk.java.net. 2021-07-22 [2021-10-22]. (原始内容存档于2022-05-27).
- ^ Update OS detection code to recognize Windows 11. openjdk.java.net. 2021-07-22 [2021-10-22]. (原始内容存档于2021-11-30).
- ^ Update OS detection code to recognize Windows Server 2022. openjdk.java.net. 2021-07-22 [2021-10-22]. (原始内容存档于2022-05-27).
- ^ Oracle Critical Patch Update Advisory - October 2021. www.oracle.com. 2021-07-22 [2021-10-22]. (原始内容存档于2023-09-10).
- ^ JDK 17.0.1 Bug Fixes. www.oracle.com. 2021-10-18 [2021-10-23]. (原始内容存档于2023-04-19).
- ^ JDK 17.0.2 Release Notes. www.oracle.com. 2022-01-18 [2022-01-23]. (原始内容存档于2023-10-30).
- ^ Remove globalsignr2ca root from 17.0.2. openjdk.java.net. 2022-01-22 [2022-01-22]. (原始内容存档于2022-01-29).
- ^ JDK 17.0.2 Bug Fixes. www.oracle.com. 2022-01-18 [2022-01-23]. (原始内容存档于2023-04-19).
- ^ JDK 17.0.3 Release Notes. www.oracle.com. 2022-04-19 [2022-05-01]. (原始内容存档于2023-10-30).
- ^ JDK 17.0.3 Bug Fixes. www.oracle.com. 2022-04-19 [2022-05-01]. (原始内容存档于2023-04-19).
- ^ JDK 17.0.4 Release Notes. www.oracle.com. 2022-07-19 [2022-12-04]. (原始内容存档于2023-10-30).
- ^ JDK 17.0.5 Release Notes. www.oracle.com. 2022-10-18 [2022-12-04]. (原始内容存档于2023-10-30).
- ^ JDK 18 Release Notes. Oracle. 2022-03-22 [2022-06-14]. (原始内容存档于2023-04-18).
- ^ JDK 18.0.1 Release Notes. Oracle. 2022-04-19 [2022-06-14]. (原始内容存档于2023-04-14).
- ^ JDK 18.0.1.1 Release Notes. Oracle. 2022-05-06 [2022-06-14]. (原始内容存档于2023-04-14).
- ^ JDK 18.0.2 Release Notes. July 19, 2022 [August 2, 2022]. (原始内容存档于2023-10-30).
- ^ JDK Patch 18.0.2.1 Release Notes. August 18, 2022 [September 23, 2022]. (原始内容存档于2023-11-06).
- ^ C2 crash when allocating array of size too large. [2023-07-29]. (原始内容存档于2023-03-29).
- ^ JDK 19 Release Notes. Oracle. 2022-09-20 [2022-09-20]. (原始内容存档于2023-09-20).
- ^ JDK 19.0.1 Release Notes. oracle.com. 2022-10-18 [2024-02-18]. (原始内容存档于2023-10-30).
- ^ JDK 19.0.2 Release Notes. oracle.com. 2023-01-17 [2024-02-18]. (原始内容存档于2024-04-04).
- ^ JDK 20 Release Notes. Oracle. 2023-03-21 [2023-04-21]. (原始内容存档于2023-09-12).
- ^ JDK 20.0.1 Release Notes. oracle.com. 2023-04-18 [2024-02-18]. (原始内容存档于2023-10-30).
- ^ JDK 20.0.1 Release Notes. oracle.com. 2023-04-18 [2024-02-18]. (原始内容存档于2023-10-30).
- ^ JDK 21.
- ^ JDK 21 Release Notes. oracle.com. 2023-09-19 [2024-02-18]. (原始内容存档于2024-01-16).
- ^ JDK 21.0.1 Release Notes. oracle.com. 2023-10-17 [2024-02-18]. (原始内容存档于2024-01-16).
- ^ JDK 21.0.2 Release Notes. oracle.com. 2024-01-16 [2024-02-18]. (原始内容存档于2024-04-04).
- ^ JDK 22.
- ^ Remove Thread.countStackFrames. bugs.openjdk.org. [2024-06-19].
- ^ JDK 23. oracle.com. [2024-10-15].
外部链接
- 官方 Java SE 下载(页面存档备份,存于互联网档案馆)
- Java早期版本(页面存档备份,存于互联网档案馆)
- Full list of changes for J2SE 1.3
- Full list of changes for J2SE 1.4
- Full list of changes for J2SE 5.0(页面存档备份,存于互联网档案馆)
- Java SE 7 release notes(页面存档备份,存于互联网档案馆)
- Sun Java Supported versions and EOL(页面存档备份,存于互联网档案馆)
- 下载Java旧版本的封存档(页面存档备份,存于互联网档案馆)