自 JDK 10 版本以來，Java 語言歷經了多次迭代更新，並在基礎程式庫中持續增添大量類別與包。自 J2SE 14 版本起，Java 語言的演變過程交由 Java Community Process（JCP）統一管理，其採用 Java 規範請求（Java Specification Requests，簡稱 JSRs）的方式，以建議和確定對 Java 平臺各部分內容的新增與修訂工作。Java 語言的規則遵循《Java 語言規範》（Java Language Specification，簡稱 JLS），針對 JLS 的任何改動均依據 JSR 901 進行規範化管理。 除了語言上的變化，多年來 Java 標準庫（JCL）發生了巨大的變化，從 JDK 10 中的幾百個類暴增到 J2SE 5 中的三千多個類。Swing、Java2D 等的全新 API 被加入其中，而許多原本 JDK 10 的類和方法已被棄用。當然，仍然有一些程式可以將 Java 程式從新版本的 Java 平臺轉換為較舊版本（例如 Java 50 降轉到 14）。 Java 7 發布後，Oracle 承諾回到以前每兩年發布一次的發布週期。但在 2013 年時，Oracle 卻宣佈他們將 Java 8 延遲一年發表，官方表示是為了修復 Java 的安全漏洞。 2017 年 9 月，Java 平臺的主架構師 Mark Reinhold 發出提議，要求將 Java 的功能更新週期從之前的每兩年一個新版本縮減到每六個月一個新版本。該提議獲得了透過，並在提出後不久生效。 Java 17 11 8 為目前提供支援的 LTS（長期支援）版本；Java 10 是上一個快速釋出版本，且已不再被支援。2018 年 9 月，隨著 Java 11 的釋出，Java 10 自當日起不再被支援。Oracle 將在 2019 年 1 月前為商業用途中的 Java 8 長期支援，而針對非商用的更新將繼續提供，直至 2020 年 12 月；此外，AdoptOpenJDK 也為 Java 8 提供免費更新。針對 Java 11 的長期支援將不再由 Oracle 提供，而是改由 OpenJDK 社群提供，例如 Eclipse Adoptium（以前稱之為 AdoptOpenJDK） JDK Alpha 和 Beta 第一個 1995 年發布的 alpha 和 beta Java 公開版本，API 和 ABI 非常不穩定。 支援 Java Web 瀏覽器被取名為 WebRunner。 JDK 10 第一個版本於 1996 年 1 月 23 日發布，叫做為 Oak。而真正第一個穩定的版本 JDK 102，被稱作 Java 1。 JDK 11 1997 年 2 月 19 日發布。新增功能主要包括：Version 11 press release Sun AWT 事件模型大規模重新編製 加入了內部類別 JavaBeans JDBC RMI 能夠支援自理的反射能力，在執行時不可能有修改。 針對 Microsoft Windows 平臺上運作的版本，附帶由 Symantec 為 JavaSoft 生產的 JIT 編譯器 支援國際化和 Unicode，該功能源自 J2SE 12 1998 年 12 月 8 日發布，代號為 Playground。 該版本到 J2SE 50 為止的後續版本被更名為 Java 2，而版本名稱「J2SE」（Java 2 平臺，標準版）取代 JDK 以區別 J2EE（Java 2 平臺，企業版） 和 J2ME（Java 2 Platform，Micro Edition）基礎平臺。這是 Java 的一個非常重要的版本，它將 Java 平臺的大小增加至原先的三倍，在 59 個程式包中達到了 1520 個類。主要增加包括：Version 12 press release Sun strictfp 關鍵字 主類別中整合了 Swing 影像化 API 首次為 Sun 提供的 JVM 配備 JIT 編譯器 Java plugin（即 Java Applet） Java IDL，一個與 CORBA 互通的介面描述語言實現 Java 集合框架 J2SE 13 代號為 Kestrel。在版本中最著名的改變包括：Version 13 press release SunVersion 13 full list of changes Sun 包含了 HotSpot JVM（HotSpot JVM 第一次被發布是在 1999 年 4 月，名為 J2SE 12 JVM） 為了支援與 CORBA 的選擇相容性而修改了 RMI Java 命名和目錄介面（Java Naming and Directory Interface，縮寫 JNDI）包含在主程式庫中（先前為擴充元件的形式） Java Platform Debugger Architecture JPDA JavaSound 用於實現動態代理的類 J2SE 14 代號為 Merlin。2002 年 2 月 6 日釋出了 JSR 59，是第一個在 JCP 下開發的 Java 平臺。主要的變化包括Version 14 press releaseVersion full 14 list of changes 語言上的改變 assert 關鍵字 在 JSR 41 中被指定 程式庫的改善 仿照 Perl 的正規表示式 異常鏈，允許一個異常來封裝原先處於較低階別的異常 支援 Internet Protocol version 6 IPv6 非阻塞 IO（取名為 Nonblocking InputOutput，NIO）（在 JSR 51 中被指定） 日誌 API 在 JSR 47 中被指定 影像 IO API 來讀取和寫入圖片，支援 JPEG、PNG 等格式 整合了 XML 解析器和 XSLT 處理器（JAXP）（指定在 JSR 5 和 JSR 63） 整合安全和加密擴充元件 JCE JSSE JAAS 內建了 Java Web Start Java Web Start 在 2001 年 3 月第一次被釋出，作為 J2SE 13 的可選元件 指定在 JSR 56 偏好設定 API javautilprefs Java 14 開放支源和安全性更新於 2008 年 10 月終止。Oracle 客戶的付費的安全性更新也在 2013 年 2 月結束。 J2SE 50 代號為 Tiger。這個在 2004 年 9 月 30 日釋出的版本原本以 15 編號，也就是仍然使用內部版本編號。這個數字輩改變是為了「更好地反映成熟度、穩定性、可擴充性和 J2SE 的安全水準」。這個版本是在 JSR 176 底下被開發。 J2SE 50 在 2008 年 4 月 8 日進入其即將停止公開更新的期間；2009 年 11 月 3 日正式不公開開放更新。Oracle 客戶直到 2015 年 5 月都能透過付費的方式取得更新 。 Tiger 增加了若干個重要的新語言功能。Version 15 press releaseVersion 15 full list of changes 泛型（Generics）： 為集合提供編譯期間 （靜態） 型別安全，且不須為大多數型別轉換 （型別轉換） （規範在 JSR 14） 元資料（Metadata）： 也稱作註解。讓語言結構（像是類別和方法）能夠用額外的資料標記，可以由元資料意識工具處理（規範在 JSR 175） 自動封裝與解封裝： 在基本的資料型別（如 int）和基本的的外覆類別 （如 Integer） 之間能夠自動轉換 （規範在 JSR 201） 列舉（Enumerations）： 以 enum 關鍵字創造出一種型別安全，有排序值的清單（如 DayMONDAY、 DayTUESDAY 等）；以前這只能透過非型別安全的恆定整數或自行撰寫的類別來達成 （型別安全的列舉模式） （規範在 JSR 201） 可變引數函式（Varargs）：方法的最後一個引數現在可以用一個型別名稱加上三個點宣告（如：void drawtext String lines）；在呼叫程式碼中，型別中引數裡任何的數字可以被使用，而它們再放在一個陣列來傳遞給方法，或是其它的呼叫程式碼可以傳遞那個型別的陣列 強化 for each 迴圈：for 迴圈的語法被用特別的語法擴充了，適用於陣列或 ，用於迭代每個成員，如基本的 類別 規範在 JSR 201 改進多執行緒 Java 程式的執行語義；新的 Java 記憶體模型改善了複雜性、 有效性和以前的規格效能 靜態匯入 另外也有以下這些對於基本程式庫的改善： 自動給 RMI 產生樁模組 Swing：新的介面外觀，叫做 synth 非同步實用工具 在 javautilconcurrent 套件中 Scanner 類別來解析來自各式各樣的輸入和緩衝 Java 5 是 Java 的最後一個正式支援 Microsoft Windows 98 和 Windows ME 的版本，而 Windows Vista 是 J2SE 5 在 2009 年 10 月的 Java 5 生命週期之前支援的 Windows 的最新版本。 Java 5 Update 5（150_05）是 Java 在 Windows 95（裝了 Internet Explorer 55 的）和 Windows NT 40 上執行的最後一個版本。 Java 5 最初出現在 Mac OS X 104 （Tiger），到了 Mac OS X 105 （Leopard）時成為了預設的 Java 版本。 版本控制系統的改變 此版本推出了 JAVA 語言中，一個新的版本控制系統，而舊版本控制系統仍然可以在開發者資源庫中繼續使用。這種對應關係持續維持到以後的版本 Java 6 JDK 16 Java 7 JDK 17 以此類推 Java 5 更新 Java 5 更新表格 版本 釋出日期 重點 Java SE 5 2004104 Metadata、泛型型別、對基礎型別自動封裝和自動解封裝、 加強 for 迴圈、 列舉的型別、 靜態類別匯入，格式化 IO、 varargs 和併發的實用工具。改進的啟動時間和記憶體佔用量。在多個正在執行的 JVM 之間共用的唯讀資料。 遠端監控和管理。一個新的 JVM 配置 API。程式化的堆疊版本追蹤。支援對 XML 11 的名稱空間、 XML 架構、 SAX 202，DOM 級別 3，與 XSLT 11 快速的 XLSTC 的編譯器。Unicode 40 支援。 Java SE 5 Update 1 20041225 50 個漏洞修復 Java SE 5 Update 2 20050316 一些中斷的修復。程式現在以較客製化的方式編譯。日曆漏洞修復和其它漏洞修復。 Java SE 5 Update 3 20050503 這個版本修復了一些漏洞，包含在 Linux Mozilla 外掛的中斷。 Java SE 5 Update 4 20050704 在這個版本中，J2SE 對於 64 位元 Windows 的支援從候選版本中脫穎而出。這個版本在 AMD64EM64T 64 位元模式執行用 Windows Server 2003 x64 版本的機器。 Java SE 5 Update 5 20050918 修復了一些漏洞以及表現增強。對 Windows 95 和 Windows NT 40 最後的更新。 Java SE 5 Update 6 20051207 在這個版本之前，Java 小程式或應用程式可以決定想要執行的 JRE 版本，但從這個更新之後就不再是這樣了。所有的程式都用最新版本的 JRE 執行。 Java SE 5 Update 7 20060529 修復了幾個漏洞並提高效能。 Java SE 5 Update 8 20060813 修復了一些漏洞以及提高了效能。 Java SE 5 Update 9 20061112 這個版本修復了一些小回歸。 Java SE 5 Update 10 20061222 添加了由 Linux 26 支援的 epoll IO 事件通知工具的實作。 許多漏洞被修復。 Java SE 5 Update 11 20070308 修復了幾個漏洞並提高了效能。 Java SE 5 Update 12 20070611 Java SE 5 Update 13 20071005 Java Web Start 中與本地檔案存取相關的多個安全漏洞已修復。 修復了允許繞過網路進入限制的 JRE 中的安全漏洞。 修復其他幾個安全問題和小錯誤。 Java SE 5 Update 14 Java SE 5 Update 15 20080306 修復因緩衝堆超出邊界而導致的幾個崩潰漏洞以及其他一些小漏洞。 現在來自 AOL，DigiCert 和 TrustCenter 的新的根憑證已經被包含在內。 Java SE 5 Update 16 20080723 此版本修復了幾個安全漏洞，例如 DoS 漏洞，緩衝區溢位和其他可能導致崩潰的漏洞，或是會給程式存取某些系統資源。 這些漏洞位於 Java Web Start，Java 管理擴充元件（Java Management Extensions，JMX）管理代理以及用於處理 XML 資料的函式中。 Java SE 5 Update 17 20081203 更新了 UTF8 字元集，實作以處理非最短形式的 UTF8 位元組序列，從而引入了與以前版本不相容的問題。 添加了新的根憑證。 許多漏洞被修復。 Java SE 5 Update 18 20090325 幾個安全上的問題已解決。 稍微修改了在 LDAP 目錄中存取 Java 物件的行為的 JNDI 功能。 增加了五個新的根憑證。 許多漏洞被修復。 Java SE 5 Update 19 20090529 為多個系統配置增加支援。 增加了服務標籤（Service Tag）支援。 許多漏洞被修復，包括幾個崩潰和記憶體洩漏。 Java SE 5 Update 20 20090806 解決了幾個安全漏洞，例如不受信任的小程式的潛在系統訪問，以及影像處理和 Unpack200 中的整數溢位。 添加了幾個新的根憑證。 許多其它小漏洞已修復。 Java SE 5 Update 21 20090909 許多小漏洞被修復。 Java SE 5 Update 22 20091104 此版本標記 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」Java brand naming ，而開發者內部編號仍然是 160。Version 6 Java webnotes Sun 這個版本是根據 JSR 270 開發的。 在發展階段，新版本大約每一週都會釋出一些功能增強和漏洞的修復。Beta 版本在 2006 年 2 月和 6 月釋出，也就是為什麼 2006 年 12 月 11 日變成最終的版本。 本版本包含的主要更改：Version 16 press release Version 16 full list of changes 支援舊的 Win9x 版本下降；非正式地，Java 6 Update 7 是 Java 的最後一個顯示為在這些版本的 Windows 上工作的版本。 這被認為是因為在 Update 10 版本中的主要更改。 指令碼語言支援（Scripting Language Support）（JSR 223）：用於與指令碼語言緊密整合的通用 API，以及內建的 Mozilla JavaScript Rhino 整合。 核心平臺 Java Lobby Mustangs HotSpot Sun weblogs 和 Swing 效能顯著的改進。 透過 JAXWS 改善的網路服務支援 JSR 224 支援 JDBC 40 JSR 221 Java 編譯器 API JSR 199：允許 Java 程式以寫程式的方式選擇和呼叫 Java 編譯器的 API。 將 JAXB 升級到版本 20：包括 StAX 解析器的整合。 支援 pluggable annotations JSR 269 改善許多 GUI，像是 SwingWorker 在 API 中的整合，表格排序和篩選，以及真正的 Swing 雙緩衝（消除模糊區域效果）。 包含 JVM 改善：同步和編譯器效能最佳化，新演演算法和對現有垃圾收集演演算法的升級以及應用程式啟動效能。 Java 6 可以安裝到在 64 位（Core 2 Duo 和更高版本）處理器機器上執行的 Mac OS X 105（Leopard）。 執行 Mac OS X 106（Snow Leopard）的 32 位和 64 位機器也支援 Java 6。 Java 6 在 2013 年 2 月到了它支援生命週期的尾聲，此時所有公開更新（包括安全更新）都計劃停止。 Oracle 在 2013 年 3 月和 4 月發布了另外兩個對 Java 6 的更新，修補了一些安全漏洞。 Java 6 更新 JAVA 6 釋出後，Sun 和後來的 Oracle，釋出了幾個更新，而不更改任何公開的 API，增強了終端使用者的可用性或固定的漏洞。Oracle 曾宣告，自 2016 年 1 月，JAVA 6 和其它更舊的版本已無法從 Oracle 下載；但在此之後，Oracle 於其官網重新提供各個舊版本的下載（需要登入 Oracle 帳戶）。 Java 6 更新表格 版本 釋出日期 重點 Java SE 6 20061223 此版本在 Web 服務、指令碼和資料庫，可插入的註解、安全性以及質量、相容性和穩定性等領域增強了許多功能。 現在也正式支援 JConsole。 已增加對 Java DB 的支援。 Java SE 6 Update 1 20070507 Java SE 6 Update 2 20070703 Java SE 6 Update 3 20071003 Java SE 6 Update 4 20080114 HotSpot VM 10 Java SE 6 Update 5 20080305 消除了幾個安全漏洞。 現在包括了來自 AOL、DigiCert 和 TrustCenter 的新的根憑證。 Java SE 6 Update 6 20080416 引入了對臭名昭彰的 Xlib XCB 鎖定斷言問題的解決方法。 當以 LoginContext 使用 Kerberos 認證時記憶體洩漏的問題已被修復。 其它幾個漏洞已修復。 Java SE 6 Update 7 非正式記載的，Java SE 6 Update 7（1607）顯示為在 Win9x 系列作業系統上工作的 Java 的最後一個版本 Java SE 6 Update 10 20081015 HotSpot VM 11 此更新的主要更改包括： Java 部署工具包（Java Deployment Toolkit），為一組 JavaScript 函式，用於簡化 applet 和 Java Web Start 應用程式的部署。 Java Kernel，一個小小的安裝程式，只包含最常用的 JRE 類別。 其它套件需要時再自己下載。 加強更新器。 增強版本控制和 pack200 的支援：不再需要伺服器端支援。 Java Quick Starter，用來加強冷卻啟動時間。 改進了 Windows 上的 Java2D 圖形基本元件的表現，使用 Direct3D 和硬體加速。 新的 Swing look and feel ，名為 Nimbus ，建立在 synth 基礎之上。 下一代的 Java 外掛：applet 現在已可在個別的程式中執行，並支援 Web Start 應用程式的許多功能。 Java SE 6 Update 11 20081203 13 個安全性漏洞修正 Java SE 6 Update 12 20081212 沒有安全性修復；64 位元的 Java 外掛（僅適用於 64 位元的網頁瀏覽器）；支援 Windows Server 2008；圖形和 JavaFX 應用程式的效能改進 Java SE 6 Update 13 20090324 7 個安全性漏洞修復，稍作修改 JNDI 存取 LDAP 中的 Java 物件，JMX 變更（createMBeanunregisterMBean），添加了 4 個新的根憑證 Java SE 6 Update 14 20090528 HotSpot VM 14 此版本包括對 JIT 編譯器的大量效能更新，用於 64 位元機器的壓縮指標，以及對 G1（Garbage First）低暫停的垃圾回收器的支援。 XXDoEscapeAnalysis 選項直接指向 HotSpot JIT compiler 以使用 escape analysis 來決定本地端物件是否可以被分配到 stack 上而不是 heap 裡 一些開發人員已經注意到這個版本中引入的一個問題，它導致除錯器似乎是隨意地錯過斷點（breakpoints）。 Sun 有一個相應的漏洞，也是一個追蹤問題。 解決方法適用於客戶端和伺服器端的虛擬機器。 使用 XXUseParallelGC 選項將可以避免錯誤。另一個解決方案是降版到 update 13，或是升級到 update 16。 Java SE 6 Update 15 20090804 加入了 patchinplace 功能 Java SE 6 Update 16 20090811 修復了 update 14 中導致除錯器錯過斷點的問題。 Java SE 6 Update 17 20091104 安全修復；兩個新的根憑證 Java SE 6 Update 18 20100113 沒有安全性漏洞修復；Hotspot VM 16；支援 Ubuntu 804 LTS 桌面版、SLES 11、Windows 7、Red Hat Enterprise Linux 53、Firefox 36、VisualVM 12；更新過的 Java DB；許多效能改進 Java SE 6 Update 19 20100330 安全性漏洞修復；根憑證更動：加入七個新的，刪除三個，五個替換為更強的簽署演演算法；對 TLS 重新談判攻擊的臨時修補 Java SE 6 Update 20 20100415 2 個安全性漏洞修補 Java SE 6 Update 21 20100707 沒有安全性漏洞修復；Hotspot VM 17；支援 Red Hat Enterprise Linux 54 和 55、Oracle Enterprise Linux 48 54 55、Google Chrome 4 與客製讀取進度指示器（Customized Loading Progress Indicators）；VisualVM 122 Java SE 6 Update 22 20101012 29 個安全性漏洞修補；支援 RFC 5746 Java SE 6 Update 23 20101208 沒有安全性漏洞修復；Hotspot VM 19；對由右至左的語言有更好的支援 Java SE 6 Update 24 20110215 21 個安全性漏洞修補；更新 Java DB Java SE 6 Update 25 20110321 沒有安全性漏洞修復；Hotspot VM 20；支援 Internet Explorer 9、Firefox 4 和 Chrome 10；改善 BigDecimal；包含「分層」編譯在伺服器虛擬機器以啟用它來跟客戶端需擬機一樣的快速開啟，當達到更好的尖峰表現效能（這個功能要啟用 server 和 XXTieredCompilation 指令選項） Java SE 6 Update 26 20110607 17 新的安全性漏洞修補； 最新的版本能夠和 Windows Vista SP1 相容 Java SE 6 Update 27 20110816 沒有安全性漏洞修復；給 Firefox 5 的新憑證 Java SE 6 Update 29 20111018 20 個安全性漏洞修補；其它許多種漏洞的修補 Java SE 6 Update 30 20111212 沒有安全性漏洞修復；修補 SSL 回歸在 Update 29；支援 Red Hat Enterprise Linux 6 Java SE 6 Update 31 20120214 14 個安全性漏洞修補和一個漏洞修復；最新的版本能夠夠可靠的在 Windows 2000 上工作 JAVA SE 6 Update 32 20120426 沒有安全性漏洞修復；其它許多種漏洞的修補 Java SE 6 Update 33 20120612 14 個安全性漏洞修補，改善 VM 設定檔的讀取 Java SE 6 Update 34 20120814 沒有安全性漏洞修復；其它許多種漏洞的修補 Java SE 6 Update 35 20120830 包含一個深度的安全修補 Java SE 6 Update 37 20121016 30 個安全性漏洞修補 Java SE 6 Update 38 20121211 其它許多種漏洞的修補 Java SE Development Kit 6 Update 38 Bug Fixes Oraclecom Java SE 6 Update 39 20130201 50 個安全性漏洞修補 Java SE 6 Update 41 20130219 5 個安全性漏洞修補 Java SE 6 Update 43 20130304 2 個安全性漏洞修補 Java SE 6 Update 45 20130416 42 個安全性漏洞修補； 其它的一些改變； 最後的公開更新。 自 2016 年 1 月起，Java 6（或更早的版本）沒辦法再從 Oracle 下載 Java SE 6 Update 51 20130618 不公開，只能透過 Java SE 支援計劃和在 Apple Update for OS X Snow Leopard、Lion 和 Mountain Lion 中；最多達到 40 個安全性漏洞修復 Java SE 6 Update 65 20131015 不公開，只能透過 Java SE 支援計劃和在 Apple Update for OS X Snow Leopard、Lion 和 Mountain Lion 中；最少 11 個重要的安全性漏洞修復 Java SE 6 Update 71 20140114 不公開下載；33 個漏洞修復 Java SE 6 Update 75 20140415 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster no 54 提供；25 個安全性漏洞修復 Java SE 6 Update 81 20140715 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；11 個安全性漏洞修復 Java SE 6 Update 85 20141016 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；18 個安全性漏洞修復 Java SE 6 Update 91 20150121 Linux x64 和 Windows i586 的版本可在 Java SE 6 參考實作中使用。 其他版本只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；15 個安全性漏洞修復 Java SE 6 Update 95 20150414 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；14 個安全性漏洞修復 Java SE 6 Update 101 20150715 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；18 個安全性漏洞修復。 給 IE 10 和 11 的憑證在 160_101 版本中被引入 Java SE 6 Update 105 20151020 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；17 個安全性漏洞修復 Java SE 6 Update 111 20160120 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；17 個安全性漏洞修復 Java SE 6 Update 113 20160205 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；1 個安全性漏洞修復 Java SE 6 Update 115 20160421 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；8 個安全性漏洞修復 Java SE 6 Update 121 20160719 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；15 個安全性漏洞修復 Java SE 6 Update 131 20161018 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；12 個安全性漏洞修復 Java SE 7 JAVA 7 （代號 DolphinJDK7 Sun） 是一個重大的更新，在 2011 年 7 月 7 日亮相，並在 2011 年 7 月 28 日開放給開發者使用。發展時期被分類成十三個重要階段，最後一個階段在 2011 年 6 月 6 日完成。平均來看，每個里程碑各有 8 個版本（就是一般包括的功能增強和漏洞修復） 。在 OpenJDK 7 專案中的功能清單中列出了很多的改變。 在 Java 7 中新增的功能包括： JVM 本身對動態語言的支援：新的 invokedynamic 位元組碼指令（JSR292），與多語言虛擬機器（Multi Language Virtual Machine）原型 64 位指標壓縮（Java 6 中可以使用 XXUseCompressedOops 開啟） 一些語言方面的小改變（在 Coin 專案下的一個小群體）： 在 switch 中使用字串型別 try 語句中的自動資源管理 針對泛型例項的建立而改善的型別推論，被稱為鑽石運算子 簡化了 varargs 方法的宣告 二進位整數字面值 允許在數值字面值中加入下劃線 允許在一個 catch 中捕捉多個型別的異常，並使用改進的型別檢查重新丟擲異常 JSR 166 下的並發實用工具 新的檔案 IO 程式庫 JSR 203 定義 增加多重檔案的支援、檔案原始資料和符號連結。新的包為：javaniofile、javaniofileattribute 和 javaniofilespi 使用 Timsort 來為集合與陣列排序，取代歸併排序 對橢圓曲線加密演演算法增加標準庫級別的支援 一個給 Java 2D 的 XRender 傳遞途徑，改進了現代 GPUs 特有的功能的處理 用於圖形功能的新平臺 API（最初在版本 6u10 中的實作為不支援的 API） 增強了對新網路通訊協定（包括 SCTP 和 Sockets Direct Protocol）的標準庫級別的支援 更新對 XML 和 Unicode 的支援，以符合最新標準 Java 部署規則集 Lambda（Java 對匿名函式的實作）、Jigsaw（Java 對模組化的實作），以及其它一些 Coin 專案中的內容在 Java 7 裡被放棄，而轉為 Java 8 一部份（其中 Jigsaw 直至 Java 9 才得到實現）。 從 2012 年 4 月開始，Java 7 一直是 javacom 的預設下載版本，直到 Java 8 釋出。 Java 7 更新 Oracle 在每季度發布 Java 7 家族每季的公開更新，至 2015 年 4 月產品支援生命週期結束時停止。 Java 7 更新表格 版本 釋出日期 重點 Java SE 7 20110728 初始版本；HotSpot VM 21 Java SE 7 Update 1 20111018 20 個安全漏洞修補；其它漏洞修補 Java SE 7 Update 2 20111212 沒有安全漏洞修補；HotSpot VM 22；可靠性和效能改進；支援 Solaris 11 和 Firefox 5 之後的版本；JavaFX 包含 Java SE JDK 改善了網頁部屬的應用程式。 Java SE 7 Update 3 20120214 14 個安全漏洞修補 Java SE 7 Update 4 20120426 沒有安全漏洞修補；HotSpot VM 23 JDK 支援 Mac OS X Java SE 7 Update 5 20120612 14 個安全漏洞修補 Java SE 7 Update 6 20120814 JavaFX 和 Java Access Bridge 被包含在 Java SE JDK 和 JRE 安裝裡面，JavaFX 支援觸控螢幕和觸控板，JavaFX 支援 Linux JDK 和 JRE 支援 Mac OS X JDK 在 ARM 上支援 Linux Java SE 7 Update 7 20120830 4 個安全漏洞修補 Java SE 7 Update 9 20121016 30 個安全漏洞修補 Java SE 7 Update 10 20121211 新的安全性功能，像是停用任何 Java 應用程式在瀏覽器中執行的能力，以及當 JRE 處於不安全狀況時發出警告的新對話方塊，另外也有一些漏洞修復 Java SE 7 Update 11 20130113 Olson Data 2012i；修復了在安裝了 JavaFX 的獨立版本的系統上外掛註冊問題，CVE20130422 的安全修復； Java applet 和 Web 啟動應用程式的預設安全級別已從「中」增加到「高」 Java SE 7 Update 13 20130201 50 個安全漏洞修補 Java SE 7 Update 15 20130219 5 個安全漏洞修補 Java SE 7 Update 17 20130304 2 個安全漏洞修補 Java SE 7 Update 21 20130416 許多的改變，包括 42 個安全漏洞修補，新的不包含外掛的伺服器 JRE 以及以 ARM 架構執行的 Linux 上的 JDK Java SE 7 Update 25 20130618 許多的改變，包括 40 個安全漏洞修補 Java SE 7 Update 40 20130910 621 個漏洞修補； 新的安全性功能，hardfloat ARM Java 任務控制（Java Mission Control） 52 和 Retina Display 支援 Java SE 7 Update 45 20131015 51 個安全漏洞修補； 防止 Java 應用程式在未經授權時的重新分發；恢復安全提示；JAXP 變化；TimeZonesetDefault 的更改 Java SE 7 Update 51 20140114 36 個安全漏洞修補； 封鎖沒有表明身分的 JAVA 小程式（如遠端控制檯－Java Applet－IBM IMM 卡、HP iLO 卡），即使警告對話方塊中有「將在下一版本中被封鎖」，Oracle to patch Java other products Tuesday ZDNet 17 個漏洞修補 Java SE 7 Update 55 20140415 37 個安全漏洞修補； 19 個漏洞修補 Java SE 7 Update 60 20140528 Java Mission Control 53，130 個漏洞修補 Java SE 7 Update 65 20140715 18 個漏洞修補 Java SE 7 Update 67 20140804 1 個漏洞修補 Java SE 7 Update 71 20141014 16 個漏洞修補 Java SE 7 Update 72 20141014 與 Update 71 相同的釋出日期，作為 Java SE 7 的相對應補丁集更新（Patch Set Update，PSU）； 36 個漏洞修補 Java SE 7 Update 75 20150120 12 個漏洞修補； SSLv3 預設為停用 Java SE 7 Update 76 20150120 與 Update 75 相同的釋出日期，作為 Java SE 7 的相對應補丁集更新（Patch Set Update，PSU）； 97 個漏洞修補 Java SE 7 Update 79 20150414 21 個安全漏洞修補；6 個漏洞修補 Java SE 7 Update 80 20150414 Java 7 的最後一個公開版本；與 Update 79 相同的發布日期，作為 Java SE 7 的相對應補丁集更新（Patch Set Update，PSU）；104 個漏洞修補 Java SE 7 Update 85 20150715 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；25 個安全漏洞修補 Java SE 7 Update 91 20151020 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；20 個安全漏洞修補 Java SE 7 Update 95 20160119 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；8 個安全漏洞修補 Java SE 7 Update 97 20160205 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；1 個安全漏洞修補 Java SE 7 Update 99 20160323 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；1 個安全漏洞修補 Java SE 7 Update 101 20160418 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；9 個安全漏洞修補 Java SE 7 Update 111 20160719 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；36 個安全漏洞修補 Java SE 7 Update 121 20161018 不公開，只能透過 Java SE 支援計劃和 Solaris 10 的 Recommended Patchset Cluster 提供；32 個安全漏洞修補 Java SE 8 Java 8 於 2014 年 3 月 18 日釋出， 包含了一些原本被計畫在 Java 7 卻延遲的功能。 這些功能改進在 JDK Enhancement Proposals JEPs 的指導下得到了整合。 JSR 335，JEP 126：Lambda 專案中提供的語言級匿名函式支援（官方稱為 lambda 表示式，非官方亦稱閉包）；新增預設方法（虛擬擴充元件方法） ，以允許在不破壞相容性的情況下向現有介面中新增方法。Java 社群中曾經有過針對是否要加入 lambda 表示式支援的辯論。稍後 Sun 公司宣佈 lambda 表示式將會包含在 Java 中，並請社群協助改善該特性。支援 lambda 表示式使得針對流中元素的函式式操作成為可能，由此可以實現由 MapReduce 啟發的函式式集合操作。預設方法允許 API 作者新增新的方法到現有介面上，而不會破壞舊的程式碼中。預設方法還使得多重繼承的行為 （不是狀態）成為可能，但預設方法的設計意圖並非在此。 JSR 223，JEP 174：Nashorn 專案，一個 JavaScript 執行時，它允許開發人員在應用程式中嵌入 JavaScript 程式碼 JSR 308，JEP 104：在 Java 型別上的註解 無符號整數算術 JSR 337，JEP 120：重複註解 JSR 310，JEP 150：日期和時間 API，基於 JodaTime 日期時間處理庫的實現。 JEP 178：靜態連結 JNI 程式庫 JEP 153：執行 JavaFX 應用程式（直接執行 JavaFX 的應用程式的 JAR 包） JEP 122：移除了虛擬機器記憶體管理中的永久世代 Java 8 不再支援 Windows XP ，但 JDK 8 第 25 版更新仍然可以在 Windows XP 安裝和執行。 先前 JDK 8 的更新版本可以在 XP 中執行，但必須透過強制解壓安裝程式來進行安裝。 2014 年 10 月後，Java 8 成為官方網站上預設的下載版本。Blog By Tori WieldtOracle on Oct 27 2014 Java 8 更新 Java 8 更新表格 版本 釋出日期 重點 Java SE 8 20140318 初始版本 Java SE 8 Update 5 20140415 使用「」在 CallerAllowableCodebase 屬性中；11 個漏洞的修補 Java SE 8 Update 11 20140715 Java 依賴性分析工具（Java Dependency Analysis Tool） Java 控制檯選項以停用贊助者；JAR 檔案屬性 EntryPoint JAXP 處理限制屬性 maxElementDepth 18 個安全性漏洞修補，15 個漏洞修補 Java SE 8 Update 20 20140819 669 個漏洞修補， JMC 54 字串重複資料刪除（預設為不啟用） Java SE 8 Update 25 20141014 10 個漏洞修補 Java SE 8 Update 31 20150119 26 個漏洞修補；SSLv3 預設為停用 Java SE 8 Update 40 20150303 645 個漏洞修補 加入「記憶體壓力」的概念來協助指出有多少的系統記憶體還能夠使用（低壓 高記憶體，高壓 低記憶體） Java SE 8 Update 45 20150414 13 個漏洞修補 Java SE 8 Update 51 20150714 增加對 WIndows 平臺的原生沙盒的支援（預設為停用） 另外還有 25 個安全性修補，14 個漏洞修補 Java SE 8 Update 60 20150818 480 個漏洞修補 Java SE 8 Update 65 20151020 25 個安全性修補，3 個漏洞修補 Java SE 8 Update 66 20151116 15 個漏洞修補 Java SE 8 Update 71 20160119 8 個安全性修補，5 個漏洞修補 Java SE 8 Update 72 20160119 8 個安全性修補，5 個漏洞修補，許多的增強 Java SE 8 Update 73 20160203 1 個安全性修補 Java SE 8 Update 74 20160203 1 個安全性修補 Java SE 8 Update 77 20160323 1 個安全性修補 Java SE 8 Update 91 20160419 9 個安全性修補，4 個漏洞修補和增強 Java SE 8 Update 92 20160419 來自 8u91 的安全性和漏洞修補，再加上 76 個額外的漏洞消補；推出 ExitOnOutOfMemoryError 和 CrashOnOutOfMemoryError 標籤 Java SE 8 Update 101 20160719 來自 8u92 的安全性和漏洞修補，再加上 9 個額外的漏洞消補 Java SE 8 Update 102 20160719 來自 8u101 的安全性和漏洞修補，再加上 118 個額外的漏洞消補 Java SE 8 Update 111 20161018 安全性修補和 9 個漏洞修補 Java SE 8 Update 112 20161018 新增功能和 139 個漏洞修補在 8u111 Java SE 9 在 2011 年的 JavaOne 中，Oracle 討論了一些他們希望在 2016 年於 Java 9 中釋出的功能。Java 9 應當對千兆級堆擁有更好的支援，同時能夠更好地整合本機程式碼，且擁有新的垃圾收集器 G1 和能夠自我調節的 JVM。2016 年初，Java 9 的釋出被重新定為 2017 年 3 月；2017 年 3 月時，釋出日期又被拖延至 2017 年 7 月；後來又因 Java 執行委員會對 Jigsaw 專案實現的分歧而最終定為 2017 年 9 月 21 日，在此期間 Oracle 回應了部分疑問，並對一些重要的技術問題進行了修正。在 2017 年 6 月的最後幾天，JCP 對擬議的模組系統方案達成了共識。 JSR 376：在 Jigsaw 專案中將 JDK 模組化（參見 Java 平臺模組系統條目） JEP 222：jshell：Java Shell（一個 Java 互動式頂層構件） JEP 295：AOT 編譯（透過 Graal VM 實現） JEP 268：XML Catalogs JEP 266：更多的併發更新。包含響應式流的 Java 實現，及其部分替代品 javautilconcurrentFlow。 JEP 193：變數控制代碼：定義一個標準方法來呼叫 javautilconcurrentatomic 和 sunmiscUnsafe 操作的等價物。 JEP 282：jlink：Java 連結器。該工具可以為模組生成一個包含了其所有依賴項的自定義執行時映像，同時允許生成一個包括執行它的 JVM 的可執行檔案，。 JavaDB 被移出 JDK JEP 263：高 DPI 影像：自動縮放與尺寸自適應。 Java 9 的首個釋出候選版於 2017 年 8 月 9 日釋出，首個穩定版於 2017 年 9 月 21 日釋出。 Java 9 更新 Java 9 更新表格 版本 釋出日期 亮點 Java SE 9 20170921 初始版本 Java SE 901 20171017 安全性修補和嚴重漏洞修補 Java SE 904 20180116 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 ArrayListString 推斷為 ArrayListString var stream liststream 推斷為 StreamString Java 10 更新 Java 11 更新表格 版本 釋出日期 亮點 Java SE 10 20180320 初始版本 Java SE 1001 20180417 安全性修補和五個漏洞修補 Java SE 1002 20180717 JDK 10 的最終版本。安全性修補和七個漏洞修補 Java SE 11 JDK 11 於 2018 年 9 月 25 日釋出 Java Countdown Countdown to Java 11 Release Date。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 13 JEP 333：新增 ZGC（一個可擴充套件的低延遲垃圾收集器） JEP 335：棄用 Nashorn JavaScript 引擎 JEP 336：棄用 Pack200 相關的工具及 API Java 11 更新 Java 11 更新表格 版本 釋出日期 重點 Java SE 11 20180925 初始版本 Java SE 1101 20181016 安全性修補和漏洞修補 Java SE 1102 20190115 安全性修補和漏洞修補 Java SE 1103 20190416 新功能，安全性修補和漏洞修補 Java SE 1104 20190716 新功能，安全性修補和漏洞修補；HotSpot 現在可以正確地偵測 Windows Server 2019 Java SE 1105 20191015 新功能，安全性修補和漏洞修補 Java SE 1106 20200114 新功能，安全性修補和漏洞修補 Java SE 1107 20200414 新功能，安全性修補和漏洞修補 Java SE 1108 20200714 新功能，安全性修補和漏洞修補 Java SE 1109 20201020 新功能，安全性修補和漏洞修補 Java SE 11010 20210119 新功能，安全性修補和漏洞修補 Java SE 11011 20210420 新功能，安全性修補和漏洞修補 Java SE 12 JDK 12 於 2019 年 3 月 19 日釋出。該版本包含較多新特性，例如： JEP 189：Shenandoah：一個實驗性的低延遲垃圾收集器 JEP 230：細粒度效能評審套件 JEP 325：Switch 表示式（預覽階段） JEP 334：JVM Constants API JEP 340：僅保留一個 AArch64 平臺的移植 JEP 341：預設類資料共享歸檔 JEP 344：針對 G1，提供可中止的混合垃圾收集 JEP 346：針對 G1，及時釋放已申請但未使用的記憶體 預覽功能 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 12 更新表格 版本 釋出日期 重點 Java SE 12 20190319 初始版本 Java SE 1201 20190416 日本新年號名稱和安全性修補 Java SE 1202 20190716 移除功能和設定 Java SE 13 JDK 13 於 2019 年 9 月 17 日釋出。該版本包含以下新特性以及很多的強化和很多的漏洞修補。 JEP350 動態 CDS 歸檔 JEP351 ZGC 取消提交未使用記憶體 JEP353 重新實現舊版 Socket API JEP354 Switch 表示式（預覽階段） JEP355 文字方塊（預覽階段） JEP 355 文字方塊 允許多行字串文字： String html html langen body Hello world body html Java 13 更新 Java 13 更新表格 版本 釋出日期 重點 Java SE 13 20190917 初始版本 Java SE 1301 20191015 安全性修補和漏洞修補 Java SE 1302 20200114 安全性修補和漏洞修補 Java SE 14 JDK 14 釋出於 2020 年 3 月 17 日。Java 14 包含了下方列出的新功能，以及 數百個小改進和數千個漏洞修復。 JEP305：使用 instanceof 的模式匹配（預覽） JEP343：打包工具（孵化中） JEP345：在 G1 中，對不均勻的記憶體訪問（NUMA）情況下的記憶體申請最佳化 JEP349：JFR Event Streaming JEP352：使位元組緩衝區能夠對映到非易失性儲存器上 JEP358：有幫助的 NullPointerExceptions JEP359：記錄類（預覽） JEP361：Switch 表示式（標準） JEP362：棄用 Solaris 和 SPARC 平臺上的移植版本 JEP363：移除 Concurrent Mark Sweep CMS 垃圾收集器 JEP364：適用於 macOS 的 ZGC JEP365：適用於 Windows 的 ZGC JEP366：棄用 ParallelScavenge SerialOld 的垃圾收集器組合 JEP367：移除 Pack200 相關的工具及 API JEP368：文字塊（第二預覽版本） JEP370：外部記憶體訪問 API（孵化中） JEP 305 使用 instanceof 的模式匹配 簡化了 instanceof 測試的常見情況，緊接著進行強制轉換。將 if obj instanceof String String s String obj Systemoutprintln slength 取代為 if obj instanceof String s Systemoutprintln slength JEP 359 記錄類 允許輕鬆建立簡單的不可變多元組類。 Java 14 更新 Java 14 更新表格 版本 釋出日期 重點 Java SE 14 20200317 初始版本 Java SE 1401 20200414 安全性修補和漏洞修補 Java SE 1402 20200714 安全性修補和漏洞修補 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 15 更新表格 版本 釋出日期 重點 Java SE 15 20200915 初始版本 Java SE 1501 20201020 安全性修補和漏洞修補 Java SE 1502 20210119 安全性修補和漏洞修補 Java SE 16 JDK 16 釋出於 2021 年 3 月 16 日。Java 16 移除了 AOT 編譯及 Graal JIT 的選項。自 Java 16 開始，允許使用 C14 來編寫 Java 的實現（但仍不允許 C17、C20 等版本），且程式碼遷移到了 GitHub，不再使用 Mercurial 版本控制系統。 JEP 338：Vector API（孵化） JEP 347：啟用 C14 語言特性 JEP 357：從 Mercurial 遷移到 Git JEP 369：遷移到 GitHub JEP 376：ZGC 併發的執行緒棧處理 JEP 380：用於 Unix 域套接字的 Channel JEP 386：Alpine Linux 的移植版本 JEP 387：可伸縮的 Metaspace JEP 388：WindowsAArch64 的移植版本 JEP 389：外部連結器 API（孵化） JEP 390：對值型別的類（Valuebased Classes）發出警告 JEP 392：打包工具 JEP 393：外部記憶體訪問 API（第三孵化版本） JEP 394：使用 instanceof 的模式匹配 JEP 395：記錄類 JEP 396：在預設情況下對 JDK 內部進行強封裝 JEP 397：密封類（第二預覽版本） Java 16 更新 Java 16 更新表格 版本 釋出日期 重點 Java SE 16 20210316 初始版本 Java SE 1601 20210420 時區資料庫更新；安全性修補和漏洞修補 Java SE 1602 20210720 安全性修補和漏洞修補 Java SE 17 JDK 17 釋出於 2021 年 9 月 14 日。Java 17 是切換到新的 6 個月釋出週期以來的第二個長期支援（LTS）版本（第一個是 Java 11）。 JEP 306：將浮點數的預設語義恢復為嚴格的 JEP 356：加強的偽隨機數生成器 JEP 382：新的 macOS 渲染管線 JEP 391：macOSAArch64 的移植版本 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 Stringformat 字串 s s case Long l Stringformat 長整數 d l case Double d Stringformat 浮點數 f d case Integer i i 0 精簡模式 Stringformat 正整數 d i case Integer i i 0 零整數 0 case Integer i i 0 Stringformat 負整數 d i default otoString Java 17 更新 Java 17 更新表格 版本 釋出日期 重點 Java SE 17 20210914 初始版本 Java SE 170112 20211019 移除了 IdenTrust Root Certificate；無法正確識別 Windows 11；透過 JDK 內建 JNDI LDAP 實現控制引用地址物件重建的系統屬性；無法正確識別 Windows Server 2022 安全性修補；21 個漏洞修補 Java SE 17028 20220118 移除 Google 的 GlobalSign Root Certificate；164 個漏洞修補 Java SE 1703 20220419 新的 XML 處理限制；Only Expose Certificates With Proper Trust Settings as Trusted Certificate Entries in macOS KeychainStore；Restricted Parsing of URL Strings in Builtin JNDI Providers；48 個漏洞修補 Java SE 170411 20220719 支援對 Java GSSKerberos 的 HTTPS 通道繫結；更新 javanetInetAddress 以檢測不明確的 IPv4 地址文字；遇到 IOException 時預設 JDK 壓縮器將關閉；計算活動處理器計數時忽略 CPU 份額；60 個漏洞修補 Java SE 17059 20221018 停用 SHA1 簽章 JARs；使 HttpURLConnection 預設保持活動超時可配置；將時區資料更新至 2022c；77 個漏洞修補 Java SE 18 JDK 18 釋出於 2022 年 3 月 22 日。 JEP 400：預設使用 UTF8 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 18 更新表格 版本 釋出日期 重點 Java SE 18 20220322 初始版本 Java SE 1801 20220419 安全性修補和漏洞修補 Java SE 18011 20220506 安全性修補和漏洞修補 Java SE 1802 20220719 安全性修補和漏洞修補 Java SE 18021 20220818 Fixes a regression in the C2 JIT compiler Java SE 19 JDK 19 釋出於 2022 年 9 月 20 日。 JEP 405：記錄類的模式（預覽） JEP 422：LinuxRISCV 的移植版本 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 19 更新表格 版本 釋出日期 重點 Java SE 19 20220920 初始版本 Java SE 1901 20221018 安全性修補和漏洞修補 Java SE 1902 20230117 安全性修補和漏洞修補 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 20 更新表格 版本 釋出日期 重點 Java SE 20 20230321 初始版本 Java SE 2001 20230418 漏洞修補 Java SE 2001 20230418 漏洞修補 Java SE 21 JDK 21 在 2023 年 9 月 19 日釋出。與僅預覽和孵化 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 Systemoutprintln Hello World 而不用： public class HelloWorld public static void main String args Systemoutprintln Hello World Java 21 更新 Java 21 更新表格 版本 釋出日期 重點 Java SE 21 20230919 初始版本 Java SE 2101 20231017 漏洞修正 Java SE 2102 20240116 漏洞修正 Java SE 22 JDK 22 在 2024 年 3 月 19 日發布。 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（用於執行緒）。 Java SE 23 Java 23 在 2024 年 9 月 17 日發布。 實作 OpenJDK 是一個自由及開放原始碼軟體實作在 Java Platform Standard Edition Java SE。 在 OpenJDK 之前，許多各式各樣不同的公司和組織推出好幾個免費的 Java 實作。其中一個例子是 Apache Harmony。 IBM 也有提供 Java 實作，而 RedHat 則是透過 IcedTea 專案提供它：一個用於 OpenJDK 的架構和整合專案。 參考文獻 外部連結 官方 Java SE 下載 Java 早期版本 Full list of changes for J2SE 13 Full list of changes for J2SE 14 Full list of changes for J2SE 50 Java SE 7 release notes Sun Java Supported versions and EOL 下載 Java 舊版本的封存檔 Category 軟體史 CategoryJava 平臺 Category 軟體版本列表