一部全網最全的 JDK 發展歷史軌跡圖
Java語言的相關組織和規範(其他語言也有類似的組織):
JCP:(Java Community Process)由世界上各個為 Java 發展操心的人士組成的社群,參與 定義 Java 新特性和新版本制定標準的組織。 JSR:(Java Specification Requests)Java 語言規範請求文件,你可以對 Java 提出新的要求,然後 Java 相關的組織投票決定是否透過,透過後就將這個要求寫入 JSR 中,並且最終給出一個開源的實現。 JEP:(Java Enhancement Proposal),Java 增強建議,收集大家對於 JDK 的建議,起草增強 Java 哪些功能的方案,為 JDK 新版本釋出及相關工作指定路線。
JAVA 1.0 ,代號Oak(橡樹)
於1996-01-23發行
JAVA 1.1
1997-02-19發行,主要更新內容:
引入JDBC 新增內部類支援 引入JAVA BEAN 引入RMI 引入反射
JAVA 1.2, 代號Playground(操場)
1998-12-8發行,主要更新內容:
引入集合框架 對字串常量做記憶體對映 引入JIT(Just In Time)編譯器 引入打包檔案數字簽名 引入控制授權訪問系統資源策略工具 引入JFC(Java Foundation Classes),包括Swing1.0,拖放和Java2D類庫 引入Java外掛 JDBC中引入可滾動結果集,BLOB,CLOB,批次更新和使用者自定義型別 Applet中新增聲音支援
JAVA1.3,代號Kestrel(紅隼)
2000-5-8釋出,主要更新內容:
引入Java Sound API 引入jar檔案索引 對Java各方面多了大量最佳化和增強 Java Platform Debugger Architecture用於 Java 調式的平臺。
JAVA 1.4,代號Merlin(隼)
2004-2-6釋出(首次在JCP下發行),主要更新內容:
新增XML處理 新增Java列印服務(Java Print Service API) 引入Logging API 引入Java Web Start 引入JDBC 3.0 API 引入斷言 引入Preferences API 引入鏈式異常處理 支援IPV6 支援正規表示式 引入Image I/O API NIO,非阻塞的 IO,最佳化 Java 的 IO 讀取。
JDK 5.0,代號Tiger(老虎),有重大改動
2004-9-30釋出,主要更新內容:
引入泛型 For-Each迴圈 增強迴圈,可使用迭代方式 自動裝箱與自動拆箱 引入型別安全的列舉 引入可變引數 新增靜態引入 引入註解 引入Instrumentation 提供了 java.util.concurrent 併發包。
JDK 6,代號Mustang(野馬)
2006-12-11釋出,主要更新內容:
引入了一個支援指令碼引擎的新框架(基於 Mozilla Rhino 的 JavaScript 指令碼引擎) UI的增強 對WebService支援的增強(JAX-WS2.0 和 JAXB2.0) 引入JDBC4.0API 引入Java Compiler API 通用的Annotations支援
JDK 7,代號Dolphin(海豚)
2011-07-28釋出,這是sun被oracle收購(2009年4月)後的第一個版本,主要更新內容:
switch語句塊中允許以字串作為分支條件 在建立泛型物件時應用型別推斷,比如你之前版本使用泛型型別時這樣寫 ArrayList<User> userList= new ArrayList<User>();,這個版本只需要這樣寫 ArrayList<User> userList= new ArrayList<>();,也即是後面一個尖括號內的型別,JVM 幫我們自動型別判斷補全了。 在一個語句塊中捕獲多種異常 新增try-with-resources語法支援,使用檔案操作後不用再顯示執行close了。 支援動態語言 JSR203, NIO.2,AIO,新I/O檔案系統,增加多重檔案的支援、檔案原始資料和符號連結,支援ZIP檔案操作 JDBC規範版本升級為JDBC4.1 引入Fork/Join框架,用於並行執行任務 支援帶下劃線的數值,如 int a = 100000000;,0 太多不便於人閱讀,這個版本支援這樣寫 int a = 100_000_000,這樣就對數值一目瞭然了。 Swing元件增強(JLayer,Nimbus Look Feel…)參考
JDK 8
2014-3-19釋出,oracle原計劃2013年釋出,由於安全性問題兩次跳票,是自JAVA5以來最具革命性的版本,主要更新內容:
介面改進,介面居然可以定義預設方法實現和靜態方法了。 引入函式式介面 引入Lambda表示式 引入全新的Stream API,提供了對值流進行函式式操作。 引入新的Date-Time API 引入新的JavaScrpit引擎Nashorn 引入Base64類庫 引入併發陣列(parallel) 新增新的Java工具:jjs、jdeps JavaFX,一種用在桌面開發領域的技術 靜態連結 JNI 程式庫
JDK 9
2017-9-21釋出
模組化(jiqsaw) 互動式命令列(JShell) 預設垃圾回收期切換為G1 程式操作改進 競爭鎖效能最佳化 分段程式碼快取 最佳化字串佔用空間
JDK 10
2018-3-21釋出
JEP286,var 區域性變數型別推斷。 JEP296,將原來用 Mercurial 管理的眾多 JDK 倉庫程式碼,合併到一個倉庫中,簡化開發和管理過程。 JEP304,統一的垃圾回收介面。 JEP307,G1 垃圾回收器的並行完整垃圾回收,實現並行性來改善最壞情況下的延遲。 JEP310,應用程式類資料 (AppCDS) 共享,透過跨程式共享通用類後設資料來減少記憶體佔用空間,和減少啟動時間。 JEP312,ThreadLocal 握手互動。在不進入到全域性 JVM 安全點 (Safepoint) 的情況下,對執行緒執行回撥。最佳化可以只停止單個執行緒,而不是停全部執行緒或一個都不停。 JEP313,移除 JDK 中附帶的 javah 工具。可以使用 javac -h 代替。 JEP314,使用附加的 Unicode 語言標記擴充套件。 JEP317,能將堆記憶體佔用分配給使用者指定的備用記憶體裝置。 JEP317,使用 Graal 基於 Java 的編譯器,可以預先把 Java 程式碼編譯成原生程式碼來提升效能。 JEP318,在 OpenJDK 中提供一組預設的根證照頒發機構證照。開源目前 Oracle 提供的的 Java SE 的根證照,這樣 OpenJDK 對開發人員使用起來更方便。 JEP322,基於時間定義的釋出版本,即上述提到的釋出週期。版本號為 $FEATURE.$INTERIM.$UPDATE.$PATCH
,分別是大版本,中間版本,升級包和補丁版本。
JDK 11
2018-9-25釋出
官網公開的 17 個 JEP(JDK Enhancement Proposal 特性增強提議):
JEP181: Nest-Based Access Control(基於巢狀的訪問控制) JEP309: Dynamic Class-File Constants(動態的類檔案常量) JEP315: Improve Aarch64 Intrinsics(改進 Aarch64 Intrinsics) JEP318: Epsilon: A No-Op Garbage Collector(Epsilon 垃圾回收器,又被稱為”No-Op(無操作)”回收器) JEP320: Remove the Java EE and CORBA Modules(移除 Java EE 和 CORBA 模組,JavaFX 也已被移除) JEP321: HTTP Client (Standard) JEP323: Local-Variable Syntax for Lambda Parameters(用於 Lambda 引數的區域性變數語法) JEP324: Key Agreement with Curve25519 and Curve448(採用 Curve25519 和 Curve448 演算法實現的金鑰協議) JEP327: Unicode 10 JEP328: Flight Recorder(飛行記錄儀) JEP329: ChaCha20 and Poly1305 Cryptographic Algorithms(實現 ChaCha20 和 Poly1305 加密演算法) JEP330: Launch Single-File Source-Code Programs(啟動單個 Java 原始碼檔案的程式) JEP331: Low-Overhead Heap Profiling(低開銷的堆分配取樣方法) JEP332: Transport Layer Security (TLS) 1.3(對 TLS 1.3 的支援) JEP333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸縮的低延遲垃圾回收器,處於實驗性階段) JEP335: Deprecate the Nashorn JavaScript Engine(棄用 Nashorn JavaScript 引擎) JEP336: Deprecate the Pack200 Tools and API(棄用 Pack200 工具及其 API)
JDK 12
2019-3-19釋出
JEP189:Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) JEP230:Microbenchmark Suite JEP325:Switch Expressions (Preview) JEP334:JVM Constants API JEP340:One AArch64 Port, Not Two JEP341:Default CDS Archives JEP344:Abortable Mixed Collections for G1 JEP346:Promptly Return Unused Committed Memory from G1
JDK 13
2019-9-17 釋出
JEP350:Dynamic CDS Archives JEP351:ZGC: Uncommit Unused Memory JEP353:Reimplement the Legacy Socket API JEP354:Switch Expressions JEP355:Text Blocks
JDK 14
預計2020/03/17 General Availability
JEP 305: Pattern Matching for instanceof (Preview) JEP 358: Helpful NullPointerExceptions JEP 361: Switch Expressions (Standard) JEP 345: NUMA-Aware Memory Allocation for G1 JEP 349: JFR Event Streaming JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination JEP 363: Remove the CMS Garbage Collector JEP 364: ZGC on macOS JEP 368: Text Blocks (Second Preview)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69940568/viewspace-2678131/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux發展歷史Linux
- iOS歷史(iOS系統發展歷史)iOS
- 人工智慧發展的歷史人工智慧
- HarmonyOS系統的發展歷史
- 資料中心的發展歷史
- 《黎之軌跡》發售紀念訪談:《軌跡》系列的巨大分水嶺
- 白狼的足跡:CDP 發展史專題【二】
- 白狼的足跡:CDP 發展史專題【一】
- 人工智慧發展歷史人工智慧
- PDF規範發展歷史
- 深度學習發展歷史深度學習
- 3D建模的歷史發展3D
- 圖解網際網路主流產品的發展歷史|解密背後的使用者需求圖解解密
- 百度地圖軌跡(Andriod SDK)地圖
- MySQL版本發展歷史介紹MySql
- 單機遊戲的發展歷史(二)遊戲
- 軌跡聯邦用到的具體公式 + 軌跡模組的設計公式
- 一張圖看懂影象識別演算法發展歷史演算法
- KITTI_00_SPTAM軌跡和KITTI_00_ORB軌跡ORB
- Leaflet 帶箭頭軌跡以及沿軌跡帶方向的動態marker
- 10.10硬碟,作業系統的歷史發展硬碟作業系統
- 神經網路的發展史神經網路
- 軌跡資料 (三)
- 軌跡規劃理解
- HTTP協議基礎及發展歷史HTTP協議
- JS 非同步發展流程 —— 非同步歷史JS非同步
- 網路同步在遊戲歷史中的發展變化(五)—— 物理同步遊戲
- 開發人員如何從官網首頁進入下載JDK歷史版本JDK
- 5分鐘學會物流軌跡地圖API嵌入到頁面中,實現物流軌跡視覺化地圖API視覺化
- 遊戲地圖發展簡史遊戲地圖
- 聊聊 RocketMQ 訊息軌跡MQ
- 智慧手環軌跡APIAPI
- js非同步發展歷史與Promise原理分析JS非同步Promise
- 史上最全Docker教程,從容器發展史到實操演練(一)Docker
- Linux是如何發展壯大的?一圖看盡Linux發展史!Linux
- 車聯網大資料:你的駕駛軌跡雲知道大資料
- 大事記管理,OA系統讓員工隨時知曉企業發展軌跡
- 一文讀懂資料平臺的發展歷史