跳至內容

Java版本歷史

出自Taiwan Tongues 台語維基
這是此頁批准,以及是最近的修訂。

Java 語言自 JDK 一鋪零版本以來經歷真濟擺的更新,嘛佇基本程式庫當中增加大量的類別佮套件。對 J 二 SE 一孵四開始,Java 語言的一个變動由 Java Community Process(JCP)管理,JCP 使用 Java 規範請求(Java Specification Requests,JSRs)來建議佮定義對 Java 平台內容的新增佮修改。Java 語言由 Java 語言規範(Java Language Specification,JLS)定義,著 JLS 的改則根據 JSR 九百空一管理。

除了語言以上的變化,久年來 Java 標準庫(JCL)發生了誠大的變化,對 JDK 一刷空中的規百个類暴增到 J 二 SE 五中的三千幾類。Swing、Java 二 D 等的全新 API 予人加入其中,足濟原本 JDK 一人攑香的類和方法已經予人棄用。當然喔,猶閣有一寡程式會當共 Java 程式對新版本的 Java 平台轉換做較舊版本(比如講 Java 五孵空降轉來到一爿四)。

Java 七發佈了後,Oracle 承諾轉到較早每兩年發布一擺的發布週期。但是二空一三年的時陣,Oracle 煞來宣布講𪜶將 Java 八延遲一年發表,官方表示是為著欲修復 Java 的安全漏洞。

二空一七年九月,Java 平台的主架構師 Mark Reinhold 發出提議,要求將 Java 的功能更新周期對進前的每兩年一个新版本縮減到每六個月一个新版本。該提議得著通過,並且咧提出無偌久的效果。

Java 十七 , 十一 , 八為目前提供支援的 LTS(長期支援)版本;Java 十是頂一个快速發佈版本,而且無閣予人支援。二空一八年九月,隨著 Java 十一的發布,Java 真正當日起袂閣予人支援。Oracle 欲佇二空一九年一月前為商業用途中的 Java 八長期支援,針對非商用的更新會繼續提供,一直到二空二空年十二月;此外,AdoptOpenJDK 嘛為 Java 八提供免費更新。針對 Java 十一的長期支援攏無閣由 Oracle 提供,是改予 OpenJDK 社群提供,比如講 Eclipse Adoptium(較早講的是 AdoptOpenJDK)

JDK Alpha 和 Beta

第一个一九九五年發布的 alpha 和 beta Java 公開版本,API 和 ABI 非常無穩定。支援 Java Web 瀏覽器予人號做 WebRunner。

JDK 一垺零

頭一个版本佇一九九六年正月二三發佈,叫做為 Oak。若真正頭一个穩定的版本 JDK 一垺零 . 二,予人號做 Java 一。

JDK 一孵一

一九九七年二月十九發布。新增功能主要包括:

  • AWT 事件模型大規模重新編製
  • 加入著內底的部類別
  • JavaBeans
  • JDBC
  • RMI
  • 會當支援自理的反射能力,咧運行的時陣無可能有修改。
  • 針對 Microsoft Windows 平台頂運作的版本,附帶由 Symantec 為 JavaSoft 生產的 JIT 編譯器
  • 支援國際化佮 Unicode,該功能源自 Taligent

J 二 SE 一孵二

一九九八年十二月初八發布,代號做Playground。該版本到 J 二 SE 五孵空為止的後續版本予人閣較號做Java 二,而版本名稱「J 二 SE」(Java 二平台,標準版)取代 JDK 以區別 J 二 EE(Java 二平台,企業版)和 J 二 ME(Java 二 Platform,Micro Edition)基礎平台。這是 Java 的一个非常重要的版本,伊將 Java 平台的大細增加至原先的三倍,佇五十九个程式包中達到一千五百二十粒類。主要欲共加包括:

  • ` strictfp ` 關鍵字
  • 主類別佮整合矣 Swing 圖像化 API
  • 頭一擺為 Sun 提供的 JVM 配備 JIT 編譯器
  • Java plug-in(即 Java Applet)
  • Java IDL,一个佮 CORBA 互通的介面來講語言實現
  • Java 集合框架

J 二 SE 一孵三

代號做Kestrel。佇版本內底上出名的改變包括:

  • 包括著矣 HotSpot JVM(HotSpot JVM 第一擺發佈是佇一九九九年四月,號做 J 二 SE 一孵二 JVM)
  • 為著欲支援佮 CORBA 的選擇相容性修改矣 RMI
  • Java 號名和 kha-tá-lok-guh 介面(Java Naming and Directory Interface,縮寫 JNDI)包含佇咧主程式庫內底(進前為這个擴充元件的形式)
  • Java Platform Debugger Architecture ( JPDA )
  • JavaSound
  • 用佇咧實現動態代理的類

J 二 SE 一孵四

代號做Merlin。二空空二年二月六號釋出矣 JSR 五十九,是頭一个佇咧 JCP 下開發的 Java 平台。主要的變化包括 ︰

  • 語言頂懸的改變
  • ` assert ` 關鍵字 ( 佇咧  JSR 四十一中予人指定 )
  • 程式庫的改善
  • 仿的 Perl 的正規表示式的
  • 異常鏈,允准一个異常來封裝原先徛佇較低級別款
  • 支援 Internet Protocol version 六 ( IPv 六 )
  • 非常的窒 I / O(號名號做  Nonblocking Input / Output,NIO)(佇咧 JSR 五十一中被指定)
  • 日誌 API ( 佇咧 JSR 四十七中被指定 )
  • 圖像 I / O API 來讀佮寫入圖片,支援 JPEG、PNG 等格式
  • 整合矣 XML 解析器佮 XSLT 處理器(JAXP)(指定佇咧 JSR 五和 JSR 六十三)
  • 整合安全佮加密擴充元件 ( JCE , JSSE , JAAS )
  • 內起了 Java Web Start  ( Java Web Start 佇二空空一年三月頭一擺被釋出,做為 J 二 SE 一鈕三的可選組件 ) ( 指定佇咧 JSR 五十六 )
  • 偏好設定 API ( java . util . prefs )

Java 一鋪四開放的支源佮安全性閣較新佇咧二空空八年十月總止。Oracle 客戶的付費的安全性更新嘛佇二空一三年二月結束。

J 二 SE 五曉空

代號做Tiger。這佇二空空四年九月三十日釋出的版本以一石川編號,也就是猶原使用內部版本的編號。這个數字輩改變是為著「閣較好的所在反映起來熟度、穩定性、就會當擴充性佮 J 二 SE 的安全水準」。 這个版本是佇咧 JSR 一百七十六下底被開發。

J 二 SE 五四月初八佇二空空八年四月初八進入其尾就欲停止公開更新的期間;二空空九年十一月三號正式無公開放更新。Oracle 客戶一直到二空一五年五月攏會當透過付費的方式取得更新。

Tiger 增加若是干焦重要的新語言功能。

  • 泛型(Generics): 為集合提供編譯的期間(靜態)型別安全,而且嘛無需要為大多數類型轉換(型別轉換)(規範佇咧 JSR 十四)
  • 元資料(Metadata): 嘛是叫做註解。予語言結構(親像類別和方法)會當用另外的資料標記,會當由元資料意識工具處理(規範佇咧 JSR 一百七十五)
  • 自動封裝佮解封裝:佇基本的資料型別(如 ` int `)和基本的外覆類別(如 ` Integer `)之間會當自動轉換(規範佇咧 JSR 兩百空一)
  • 枚舉(Enumerations): 以 ` enum ` 關鍵字創造出一種型別安全,有排序值的單位(如 Day . MONDAY、Day . TUESDAY 等); 較早這干焦會當透過非型別安全的恆定整數抑是家己編寫的類別來達成(型別安全的枚舉模式)(規範佇咧 JSR 兩百空一)
  • 會當變參數函式(Varargs): 辦法的最後一个參數這馬會當用一个類型的名稱加上三个點宣告(如:` void drawtext ( String . . . lines ) `); 咧調用代碼中,型別中參數內底任何的數字會使被使用,而且𪜶閣囥佇一个陣列來傳遞予方法,抑是講其他的調用代碼會當傳遞彼个型別的陣列
  • 強化 ` for each ` 迴箍:` for ` 迴圈的語法予人用特別的語法擴充矣,適用的陣列抑是 ` Iterable `,用迵天代逐家成員,如基本的啦 ` Collection ` 類別 ( 規範佇咧 JSR 兩百空一 )
  • 改進濟執行緒 Java 程式的執行語義;新的 Java 記持體模型改善複雜性、有效性佮較早的規格效能
  • 靜態匯入另外嘛有以下遮的對基本的程式庫的改善:
  • 自動予 RMI 產生柱仔模組
  • Swing:新的介面外觀,叫做 synth
  • 無仝步實用工具佇咧 java . util . concurrent   套件內底
  • Scanner 類別來解析來自各式各樣的輸入佮慢衝

Java 五是 Java 的最後一个正式支援 Microsoft Windows 九十八佮 Windows ME 的版本,而且 Windows Vista 是 J 二 SE 五佇二空空九年十月的 Java 五性命週期進前支援的 Windows 的上新版本。

Java 五 Update 五(一垺五 . 零 \ _ 五)是 Java 佇咧 Windows 九十五(貯矣 Internet Explorer 五鋪五的)和 Windows NT 四配空上運行的最後一个版本。

Java 五上早出現佇咧 Mac OS X 十曉四(Tiger), 到位矣 Mac OS X 十人五(Leopard)時陣成做是預設的 Java 版本。

版本控制系統的改變

這个版本推出矣 JAVA 語言內底,一个新的版本控制系統,舊版本控制系統猶原會當佇開發者資源庫內底繼續使用。

> Both version numbers " 一垺五 . 零 " and " 五曉空 " are used to identify this release of the Java 二 Platform Standard Edition . Version " 五曉空 " is the product version , while " 一垺五 . 零 " is the developer version . The number " 五曉空 " is used to better reflect the level of maturity , stability , scalability and security of the J 二 SE . > >

這款對應關係繼續維持到以後的版本 ( Java 六=JDK 一孵六 , Java 七=JDK 一鈕七 , 以此類推 ) .

Java 五更新

Java SE 六

代號做Mustang。版本發佈佇二空空六年十二月十一號,Sun 共原本的名「J 二 SE」改做「Java SE」,然後才閣對版本號中去掉「. 零」,開發者內部編號猶原是一丈六 . 零。這个版本是根據 JSR 兩百七十開發的。

咧發展階段,新版本的大約是每一禮拜攏會釋出一寡功能增強佮空隙的修復。Beta 版本佇二空空六年二月和六月釋出,也就是為啥物二空空六年十二月十一變做最終的版本。

本版本包括的主要改:

  • 支援舊的 Win 九 x 版本下降;無正式的,Java 六 Update 七嘿 Java 的最後一个顯示為佇遮的版本的 Windows 做工課的版本。這予人認為是因為佇咧 Update 十版本內底主要閣改。
  • 手稿語言支援(Scripting Language Support)(JSR 兩百二十三): 用佇佮手稿的語言整合的通用 API,猶閣有內底起的 Mozilla JavaScript Rhino 整合。
  • 核心平台佮 Swing 效能顯示的改進。
  • 透過 JAX-WS 改善的網路服務支援 ( JSR 兩百二十四 ) .
  • 支援 JDBC 四配零 ( JSR 二百二十一 ) .
  • Java 編譯器 API ( JSR 一百九十九 ):容允 Java 程式以寫程式的方式選擇佮呼叫 Java 編譯器的 API。
  • 將 JAXB 升級到版本二交零:包括講 StAX 解析器的整合。
  • 支援 pluggable annotations ( JSR 兩百六十九 ) .
  • 改善真濟 GUI,像講 SwingWorker 佇咧 API 中的整合,表格排序佮篩選,猶閣有真正的 Swing 雙緩衝(消除無糊區域效果)。
  • 包含 JVM 改善:同步佮編譯器效會當優化,新演算法佮對現有糞埽收集演算法的升級佮應用程式啟動效能。

Java 六十會當安裝到佇六十四位元(Core 二 Duo 佮閣較懸版本)處理機械上運行的 Mac OS X 十人五(Leopard)。 運行 Mac OS X 十曉六(Snow Leopard)的三十二位元佮六十四位元機器嘛支援 Java 六。

Java 六佇二空一三年二月到伊的支援性命週期的尾聲,現此時所有公開更新(包括安全更新)攏計畫停止。Oracle 二空一三年三月佮四月發佈矣另外兩个著 Java 六更新,修補一寡安全漏洞。

Java 六更新

JAVA 六釋出了後,Sun 佮後來的 Oracle,釋出幾个仔更新,無改任何公開的 API,增強終端使用者的可用性抑是固定的空縫。Oracle 曾聲明,自二空一六年一月,JAVA 六佮其他閣較舊的版本無法度對 Oracle 下載;毋過佇咧這个代誌了後,Oracle 佇其官網重新提供予舊版本下載(需要登入 Oracle 口座)。

Java SE 七

JAVA 七(代號Dolphin)是一个重大的更新,佇咧二空一一年七月七號娘相,並且佇二空一一年七月二八開放予開發者使用。發展時期予人分類做十三个重要階段,上尾一个階段佇二空一一年六月初六完成。平均來看,每一个紀念意義有八个版本(就是一般包括的功能增強佮漏洞修復)。 佇咧 OpenJDK 七專案中的功能清單中列出真濟的改變。

佇咧 Java 七中新增的功能包括:

  • JVM 本身對動態語言的支援:新的 ` invokedynamic ` 位元組碼指令(JSR 被二百九十二), 佮濟語言虛擬機(Multi Language Virtual Machine)原型
  • 六十四位元指標壓縮(Java 六中會使用 XX : + UseCompressedOops 開啟)
  • 一寡語言方面的小改變(佇咧 Coin 專案下的一个小群體):


* 佇咧 switch 使用字串類型
  • try 語句內底的自動資源管理
  • 針對泛型實例的建立若改善的類型推論,予人叫做璇石運算子 ` < > `
  • 簡化矣 varargs 方法的聲明
  • 二進位整數字面值
  • 允准佇數值字面值中加入底線
  • 允准佇一个 catch 中間掠濟類型的各樣,而且使用改進的類型檢查重新跋閣四常
  • JSR 一百六十六下的並且發實用工具
  • 新的檔案  I / O 程式庫 ( JSR 兩百空三定義 ) 增加真濟重檔案的支援、檔案原始資料佮符號鏈結束的。新的包為:java . nio . file、java . nio . file . attribute 和 java . nio . file . spi
  • 使用 Timsort 來為集合佮陣列排序,取代合併排序
  • 對雞卵行曲線加密演算法增加標準庫級別的支援
  • 一个予 Java 二 D 的 XRender 傳遞途徑,改進了現代 GPUs 特有的功能的處理
  • 用佇圖形功能的新平台 API(上頭仔佇版本六 u 十中的實作為不支援的 API)
  • 增強矣對新網路通訊協定(包括講 SCTP 和 Sockets Direct Protocol)伊的標準庫級別的支援
  • 更新著 XML 和 Unicode 的支援,用符合上新的標準
  • Java 部署規則集

Lambda(Java 著崁名函式的實作)、 Jigsaw(Java 對模組化的實作), 佮其他一寡 Coin 專案內底的內容佇咧 Java 七爿被放棄的,才轉做是 Java 八一部份(其中 Jigsaw 一直到 Java 九才會到實現)。

對二空一二年四月開始,Java 七一直是 java . com 的預設之下載版本,一直到 Java 八發佈。

Java 七更新

Oracle 逐季度咧發佈講 Java 七家族逐季的公開更新,到二空一五年四月產品支援性命週期結束時停止。

Java SE 八

Java 八佇二空一四年三月十八釋出,  包括一寡原本予人計畫佇咧 Java 七卻是延遲的功能。

這寡功能改進在  JDK Enhancement Proposals ( JEPs )   的指導落就著整合。

  • JSR 三百三十五,JEP 百二六:Lambda 專案內底提供的語言級匿名函式支援(官方講號做 lambda 表達式,非官方亦稱閉包); 添加預設的方法(虛擬擴充元件方法) ,以允准佇無破壞相容性的狀況下向現有介面中新增方法。Java 社群內底捌有針對是毋是愛加入 lambda 表達式支援的辯論。較等咧 Sun 公司宣佈講 lambda 表達式會包含佇 Java 中,共社群協助改善這个特性。支援 lambda 表達式予得針對流中元素的函數式操作成做可能,由此會當實現由 MapReduce 啟發的函數式集合操作。預設方法允准 API 作者添加新的方法到現有介面上,袂損蕩去舊的程式碼中。預設方法猶閣予真重繼承的行為(毋是狀態)成做可能,毋過按算方法的設計意圖嘛毋是佇遮。
  • JSR 兩百二十三,JEP 一百七十四:Nashorn 專案,一个 JavaScript 運行的時陣,伊允准開發人員佇咧應用程式中樞入去 JavaScript 程式碼
  • JSR 三百空八,JEP 一百空四:佇咧 Java 型別上的註解
  • 無符號整數算術
  • JSR 三百三十七,JEP 百二:重複註解
  • JSR 三百十一,JEP 百五:日期佮時間 API,是因為 Joda-Time 日期時間處理庫的實現。
  • JEP 一百七十八:靜態連結 JNI 程式庫
  • JEP 一百五十三:執行 JavaFX 應用程式(直接執行 JavaFX 的應用程式的 JAR 包)
  • JEP 一百二十二:移除了虛擬機器記憶體管理中的永久世代

Java 八無閣再支援  Windows XP ,猶毋過 JDK 八第二十五版的更新猶閣會當佇咧 Windows XP 安裝佮運行。  早前 JDK 八的換新版本會當佇 XP 中運行,但是必須通過強制解壓安裝程式來進行安裝。

二空一四年十月了後,Java 八成做官方網站頂頭預設的下載版本。

Java 八更新

Java SE 九

佇二零一一年的 JavaOne 中,Oracle 討論一寡𪜶希望佇二空一六年 Java 九月內發佈的功能。Java 九應當對千兆級堆有閣較好的支援,同時會當閣較好的整合本機代碼,而且有新的糞埽收集器 G 一佮會當自我調的 JVM。二空一六年初,Java 九方被重新定做二空一七年三月;二空一七年三月時,發佈日期又閣被拖延到二空一七年七月;尾仔閣因 Java 執行委員會嘿 Jigsaw 專案實現的分歧而且終定做二空一七年九月二一,佇咧這个時陣 Oracle 回應著部份的疑問,對一寡重要的技術問題做了修正。佇二空一七年六月的最後幾工,JCP 對擬議的模組系統方案有達成共識。

  • JSR 三百七十六:佇咧 Jigsaw 專案中將 JDK 模組化(參見 Java 平台模組系統條目)
  • JEP 兩百二十二:jshell:Java Shell(一个 Java 互動式頂層構件)
  • JEP 兩百九十五:AOT 編譯(通過 Graal VM 實現)
  • JEP 兩百六十八:XML Catalogs
  • JEP 兩百六十六:閣較濟的併發閣較新。包含回應式流的 Java 實現,佮其部份替代品 ` java . util . concurrent . Flow `。
  • JEP 一百九十三:變數控制代碼:定義一个標準方法來呼叫 ` java . util . concurrent . atomic ` 和 ` sun . misc . Unsafe ` 操作的等價數。
  • JEP 兩百八十二:jlink:Java 連結器。該工具會當為模組生做一个包括了其所有依賴項的自訂執行的時陣就像,同時允准生一个包括執行伊的 JVM 的可執行檔,。
  • JavaDB 予人徙出來 JDK
  • JEP 兩百六十三:懸 DPI 圖像:自動縮放佮 sài-sù 自適應。

Java 九的頭一个發布候選版佇二空一七年八月初九發布,頭一个穩定版佇二空一七年九月二一發布。

Java 九更新

Java SE 十

OpenJDK 十於二空一八年三月二十發布。這擺更新包含以下十二个新特性:

  • JEP 兩百八十六:局部變數類型推斷
  • JEP 三百一十七:實驗性的是因為 Java 的 JIT 編譯器。這是 Linux x 六十四下 Graal 動態編譯器的整合。
  • JEP 三百十一:應用程式類級別資料共享
  • JEP 三百二十二:是因為時間的版本號名
  • JEP 三百空七:適用佇咧 G 一寡濟執行緒完全糞埽回收
  • JEP 三百空四:糞埽回收器介面
  • JEP 三百十四:閣較濟的 Unicode 語言標籤擴充
  • JEP 三百十九:內建根憑證
  • JEP 三百十二:執行緒本地握手
  • JEP 三百十六:佇咧可選的記持體裝置申請堆記憶體空間
  • JEP 三百十三:刪除本地代碼標頭檔生成器 javah
  • JEP 兩百九十六:將所有 JDK 分裂甲仝一个版本庫內底

Java 十更新

Java SE 十一

JDK 十一於二空一八年九月二五發布。Java 十一包括如下更新:

  • JEP 一百八十一:針對岫狀成員的存取控制
  • JEP 三百空九:動態類檔案常數
  • JEP 三百十五:利用 Aarch 六十四的特有架構改進其上的效能
  • JEP 三百十八:Epsilon:無操作糞埽收集器
  • JEP 三百二十:徙掉 Java EE 和 CORBA 模組
  • JEP 三百二十一:HTTP Client
  • JEP 三百二十三:lambda 參數的局部變數語法
  • JEP 三百二十四:支援 Curve 二嬸五千五百十九佮 Curve 四百四十八金鎖
  • JEP 三百二十七:Unicode 十
  • JEP 三百二八:添加 Java 飛行記錄器(JFR), 其用佇咧建立效能的分析記錄
  • JEP 三百二九:ChaCha 二十佮 Poly 一千三百空五加密演算法
  • JEP 三百三十:執行單檔案原始碼程式
  • JEP 三百三十一:提銷堆分析
  • JEP 三百三十二:支援 TLS 一孵三
  • JEP 三百三十三:添加 ZGC(一个會當延伸的低延糞埽收集器)
  • JEP 三百三十五:棄用 Nashorn JavaScript ia̋n-jín
  • JEP 三百三十六:棄用 Pack 兩百的工具佮 API

Java 十一更新

Java SE 十二

JDK 十二於二空一九年三月十九發布。該版本包括較濟新特性,比如講:

  • JEP 一百八十九:Shenandoah:一个實驗性的低延遲糞埽收集器
  • JEP 兩百三十:細粒度效能評審套件
  • JEP 三百二五:Switch 表達式(預覽的階段)
  • JEP 三百三十四:JVM Constants API
  • JEP 三百四十:干焦保留一个 AArch 六十四平台的移栽
  • JEP 三百四十一:預設類的資料共享歸檔
  • JEP 三百四十四:針對 G 一,提供會當中止的混合糞埽收集
  • JEP 三百四十六:針對 G 一,及時釋放已經申請毋過無使用的記持體

Java 十二更新

Java SE 十三

JDK 十三佇二空一九年九月十七號發佈。該版本包含以下的新特性以下佮真濟的強化佮真濟的空縫修補。

  • JEP 被三百五十 : 動態 CDS 歸檔
  • JEP 抹三仔五十一 : ZGC : 取消提交無使用的記持體
  • JEP 被三百五十三 : 重新實現舊版 Socket API
  • JEP 被三百五十四 : Switch 表達式(預覽的階段)
  • JEP 被三百五十五 : 文字方塊(預覽的階段)

Java 十三更新

Java SE 十四

JDK 十四發布佇二空二空年三月十七。Java 十四包括下跤煏出的新功能,以及「數百个小改進和數千个空修復」。

  • JEP 抹三百空五:使用 instanceof 的模式匹配(預覽)
  • JEP 被三百四十三:包家私(孵出來)
  • JEP 被三百四十五:佇咧 G 一中,著無齊勻的記持體存取(NUMA)情況下的記持體申請最佳化
  • JEP 被三百四十九:JFR Event Streaming
  • JEP 被三百五十二:予位元組緩衝區會當對影甲真發揮性記持體上
  • JEP 被三百五十八:有幫助的 NullPointerExceptions
  • JEP 被三百五十九:記錄類(預覽)
  • JEP 抹三百六十一:Switch 表達式(標準)
  • JEP 被三百六十二:棄用 Solaris 和 SPARC 平台頂的移植版本
  • JEP 被三百六十三:徙掉 Concurrent Mark Sweep ( CMS ) 糞埽收集器
  • JEP 被三百六十四:適用佇咧 macOS 的 ZGC
  • JEP 被三百六十五:適用佇咧 Windows 的 ZGC
  • JEP 被三百六十六:棄用 ParallelScavenge + SerialOld 的糞埽收集器組合
  • JEP 被三百六十七:徙掉 Pack 兩百的工具佮 API
  • JEP 被三百六十八:文字塊(第二預覽版本)
  • JEP 鋪三百七十:外部記憶體存取 API(孵出來)

Java 十四更新

Java SE 十五

JDK 十五發布佇二空二空年九月十五。Java 十五增加了著濟行字串字面量(亦稱文字塊)的支援,此外 Shenandoah 和 ZGC 糞埽收集器嘛轉做生產級別,無標記做是測試內底。該版本徙掉嘿 Solaris 作業系統佮 SPARC CPU 的支援,閣徙除了 Nashron JavaScript ia̋n-jín,猶閣有一寡根 CA 憑證。

  • JEP 三百三十九:愛德華曲線數位簽章演算法 ( EdDSA )
  • JEP 三百六十:密封類(預覽)
  • JEP 三百七十一:隱藏類
  • JEP 三百七十二:徙掉 Nashorn JavaScript ia̋n-jín
  • JEP 三百七十三:重新實現 DatagramSocket API
  • JEP 三百七十四:禁用並棄用偏向鎖
  • JEP 三百七十五:使用 instanceof 的模式匹配(第二預覽版本)
  • JEP 三百七十七:ZGC : 可伸勼的低延遲糞埽收集器
  • JEP 三百七十八:文字塊
  • JEP 三百七十九:Shenandoah : 無愛暫停時間的糞埽收集器
  • JEP 三百八十一:徙掉 Solaris 和 SPARC 平台頂的移植版本
  • JEP 三百八十三:外部記憶體存取 API(第二孵化版本)
  • JEP 三百八十四:記錄類(第二預覽)
  • JEP 三百八十五:棄用 RMI Activation 後擺徙掉

Java SE 十六

JDK 十六發布佇二空二一年三月十六。Java 十六徙除了 AOT 編譯佮 Graal JIT 的選項。自 Java 十六開始,允准使用 C + + 十四來編寫的 Java 的實現(但是猶原無允准 C + + 十七、C + + 二十等版本), 而且代碼徙甲 GitHub,無閣用矣 Mercurial 版本控制系統。

  • JEP 三百三十八:Vector API(孵出來)
  • JEP 三百四十七:啟用 C + + 十四語言特性
  • JEP 三仔五十七:對 Mercurial 徙甲 Git
  • JEP 三百六十九:徙甲 GitHub
  • JEP 三百七十六:ZGC : 並且行的執行緒棧處理
  • JEP 三百八十:用佇咧 Unix 域通訊端的 Channel
  • JEP 三百八十六:Alpine Linux 的移植版本
  • JEP 三百八十七:可伸勼的 Metaspace
  • JEP 三百八十八:Windows / AArch 六十四的移植版本
  • JEP 三百八十九:外部連結器 API(孵出來)
  • JEP 三百九十:著值類型的類型(Value-based Classes)發出警告
  • JEP 三百九十二:包家私
  • JEP 三百九十三:外部記憶體存取 API(第三孵化版本)
  • JEP 三百九十四:使用 instanceof 的模式匹配
  • JEP 三百九十五:記錄類
  • JEP 三百九十六:咧設情況下著 JDK 內部進行強封裝
  • JEP 三百九十七:密封類(第二預覽版本)

Java SE 十七

JDK 十七發布佇二空二一年九月十四。Java 十七是切換著新的六個月發佈周期以來的第二个長期支援(LTS)版本(第一个是 Java 十一)。

  • JEP 三百空六:將浮點數的預設語意恢復做嚴格的
  • JEP 三仔五十六:加強的偽亂數生成器
  • JEP 三百八十二:新的 macOS 彩現管線
  • JEP 三百九十一:macOS / AArch 六十四的移植版本
  • JEP 三百九十八:啟用 Applet API 後擺徙掉
  • JEP 四百空三:著 JDK 內部進行強封裝
  • JEP 四百空六:使用 switch 的模式匹配(預覽)
  • JEP 四百空七:徙掉 RMI Activation
  • JEP 四百空九:密封類
  • JEP 四仔十一:來移除實驗性的 AOT 佮 JIT 編譯器
  • JEP 四仔十一:棄用安全管理器後續徙掉
  • JEP 四仔十二:外部函式佮記憶體 API(預覽)
  • JEP 四仔一十四:Vector API(第二預覽版本)
  • JEP 四仔十五:限定上下文的反序列化過濾器

Java 十八

JDK 十八發布佇二空二二年三月二二。

  • JEP 四百:預設使用 UTF ma八
  • JEP 四百空八:簡單 Web 侍服器
  • JEP 四仔一十三:Java API 文件中的代碼片段
  • JEP 四百十六:使用 Method Handle 重新實現核心反射
  • JEP 四仔一十七:Vector API(第三孵化版本)
  • JEP 四仔十八:網際網路位址解破 SPI
  • JEP 四百十九:外部函式佮記憶體 API(第二預覽版本)
  • JEP 四仔二:使用 switch 的模式匹配(第二預覽版本)
  • JEP 四仔二一:棄用 Finalization 後擺徙掉

Java 十九

JDK 十九發布佇二空二二年九月二十。

  • JEP 四仔空五:記錄類的模式(預覽)
  • JEP 四仔二:Linux / RISC-V 的移植版本
  • JEP 四仔二四:外部函式佮記憶體 API(預覽)
  • JEP 四仔二五:虛擬執行緒(預覽)
  • JEP 四仔二六:Vector API(第四預覽版本)
  • JEP 四仔二七:使用 switch 的模式匹配(第三預覽的版本)
  • JEP 四仔二八:結構化並行(孵出來)

Java 二十

JDK 二十發布佇二空二三年三月二一。

  • JEP 四仔二九:作用域值(孵出來)
  • JEP 四仔三:記錄類的模式(第二預覽版本)
  • JEP 四百三十三:使用 switch 的模式匹配(第四預覽版本)
  • JEP 四仔三十四:外部函式佮記憶體 API(第二預覽版本)
  • JEP 四仔三十六:虛擬執行緒(第二預覽版本)
  • JEP 四仔三十七:結構化並行(第二孵化版本)

實作

OpenJDK 是一个自由開放源頭碼軟體實作佇 Java Platform , Standard Edition ( Java SE )。

佇咧 OpenJDK 進前,真濟各種無仝款的公司和組織推出幾若个免費的 Java 實作。其中一个例是 Apache Harmony。IBM 嘛有提供 Java 實作,而且 RedHat 是通過 IcedTea 專案提供伊:一个用於 OpenJDK 的架構佮整合專案。

參考文獻

外部連結

  • 官方 Java SE 下載
  • Java 早期版本
  • Full list of changes for J 二 SE 一孵三
  • Full list of changes for J 二 SE 一孵四
  • Full list of changes for J 二 SE 五曉空
  • Java SE 七 release notes
  • Sun Java Supported versions and EOL
  • 下載 Java 舊版本的封存檔