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]
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]
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舊版本的封存檔(頁面存檔備份,存於網際網路檔案館)