溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

一部全網(wǎng)最全的 JDK 發(fā)展歷史軌跡圖

發(fā)布時間:2020-08-17 21:06:31 來源:ITPUB博客 閱讀:182 作者:朱小廝的博客 欄目:編程語言

Java語言的相關(guān)組織和規(guī)范(其他語言也有類似的組織):

  • JCP:(Java Community Process)由世界上各個為 Java 發(fā)展操心的人士組成的社區(qū),參與 定義 Java 新特性和新版本制定標準的組織。
  • JSR:(Java Specification Requests)Java 語言規(guī)范請求文檔,你可以對 Java 提出新的要求,然后 Java 相關(guān)的組織投票決定是否通過,通過后就將這個要求寫入 JSR 中,并且最終給出一個開源的實現(xiàn)。
  • JEP:(Java Enhancement Proposal),Java 增強建議,收集大家對于 JDK 的建議,起草增強 Java 哪些功能的方案,為 JDK 新版本發(fā)布及相關(guān)工作指定路線。

JAVA 1.0 ,代號Oak(橡樹)

于1996-01-23發(fā)行

JAVA 1.1

1997-02-19發(fā)行,主要更新內(nèi)容:

  1. 引入JDBC
  2. 添加內(nèi)部類支持
  3. 引入JAVA BEAN
  4. 引入RMI
  5. 引入反射

JAVA 1.2, 代號Playground(操場)

1998-12-8發(fā)行,主要更新內(nèi)容:

  1. 引入集合框架
  2. 對字符串常量做內(nèi)存映射
  3. 引入JIT(Just In Time)編譯器
  4. 引入打包文件數(shù)字簽名
  5. 引入控制授權(quán)訪問系統(tǒng)資源策略工具
  6. 引入JFC(Java Foundation Classes),包括Swing1.0,拖放和Java2D類庫
  7. 引入Java插件
  8. JDBC中引入可滾動結(jié)果集,BLOB,CLOB,批量更新和用戶自定義類型
  9. Applet中添加聲音支持

JAVA1.3,代號Kestrel(紅隼)

2000-5-8發(fā)布,主要更新內(nèi)容:

  1. 引入Java Sound API
  2. 引入jar文件索引
  3. 對Java各方面多了大量優(yōu)化和增強
  4. Java Platform Debugger Architecture用于 Java 調(diào)式的平臺。

JAVA 1.4,代號Merlin(隼)

2004-2-6發(fā)布(首次在JCP下發(fā)行),主要更新內(nèi)容:

  1. 添加XML處理
  2. 添加Java打印服務(Java Print Service API)
  3. 引入Logging API
  4. 引入Java Web Start
  5. 引入JDBC 3.0 API
  6. 引入斷言
  7. 引入Preferences API
  8. 引入鏈式異常處理
  9. 支持IPV6
  10. 支持正則表達式
  11. 引入Image I/O API
  12. NIO,非阻塞的 IO,優(yōu)化 Java 的 IO 讀取。

JDK  5.0,代號Tiger(老虎),有重大改動

2004-9-30發(fā)布,主要更新內(nèi)容:

  1. 引入泛型
  2. For-Each循環(huán) 增強循環(huán),可使用迭代方式
  3. 自動裝箱與自動拆箱
  4. 引入類型安全的枚舉
  5. 引入可變參數(shù)
  6. 添加靜態(tài)引入
  7. 引入注解
  8. 引入Instrumentation
  9. 提供了 java.util.concurrent 并發(fā)包。

JDK 6,代號Mustang(野馬)

2006-12-11發(fā)布,主要更新內(nèi)容:

  1. 引入了一個支持腳本引擎的新框架(基于 Mozilla Rhino 的 JavaScript 腳本引擎)
  2. UI的增強
  3. 對WebService支持的增強(JAX-WS2.0 和 JAXB2.0)
  4. 引入JDBC4.0API
  5. 引入Java Compiler API
  6. 通用的Annotations支持

JDK 7,代號Dolphin(海豚)

2011-07-28發(fā)布,這是sun被oracle收購(2009年4月)后的第一個版本,主要更新內(nèi)容:

  1. switch語句塊中允許以字符串作為分支條件
  2. 在創(chuàng)建泛型對象時應用類型推斷,比如你之前版本使用泛型類型時這樣寫 ArrayList<User> userList= new ArrayList<User>();,這個版本只需要這樣寫 ArrayList<User> userList= new ArrayList<>();,也即是后面一個尖括號內(nèi)的類型,JVM 幫我們自動類型判斷補全了。
  3. 在一個語句塊中捕獲多種異常
  4. 添加try-with-resources語法支持,使用文件操作后不用再顯示執(zhí)行close了。
  5. 支持動態(tài)語言
  6. JSR203, NIO.2,AIO,新I/O文件系統(tǒng),增加多重文件的支持、文件原始數(shù)據(jù)和符號鏈接,支持ZIP文件操作
  7. JDBC規(guī)范版本升級為JDBC4.1
  8. 引入Fork/Join框架,用于并行執(zhí)行任務
  9. 支持帶下劃線的數(shù)值,如 int a = 100000000;,0 太多不便于人閱讀,這個版本支持這樣寫 int a = 100_000_000,這樣就對數(shù)值一目了然了。
  10. Swing組件增強(JLayer,Nimbus Look Feel…)參考

JDK 8

2014-3-19發(fā)布,oracle原計劃2013年發(fā)布,由于安全性問題兩次跳票,是自JAVA5以來最具革命性的版本,主要更新內(nèi)容:

  1. 接口改進,接口居然可以定義默認方法實現(xiàn)和靜態(tài)方法了。
  2. 引入函數(shù)式接口
  3. 引入Lambda表達式
  4. 引入全新的Stream API,提供了對值流進行函數(shù)式操作。
  5. 引入新的Date-Time API
  6. 引入新的JavaScrpit引擎Nashorn
  7. 引入Base64類庫
  8. 引入并發(fā)數(shù)組(parallel)
  9. 添加新的Java工具:jjs、jdeps
  10. JavaFX,一種用在桌面開發(fā)領(lǐng)域的技術(shù)
  11. 靜態(tài)鏈接 JNI 程序庫

JDK 9

2017-9-21發(fā)布

  1. 模塊化(jiqsaw)
  2. 交互式命令行(JShell)
  3. 默認垃圾回收期切換為G1
  4. 進程操作改進
  5. 競爭鎖性能優(yōu)化
  6. 分段代碼緩存
  7. 優(yōu)化字符串占用空間

JDK 10

2018-3-21發(fā)布

  1. JEP286,var 局部變量類型推斷。
  2. JEP296,將原來用 Mercurial 管理的眾多 JDK 倉庫代碼,合并到一個倉庫中,簡化開發(fā)和管理過程。
  3. JEP304,統(tǒng)一的垃圾回收接口。
  4. JEP307,G1 垃圾回收器的并行完整垃圾回收,實現(xiàn)并行性來改善最壞情況下的延遲。
  5. JEP310,應用程序類數(shù)據(jù) (AppCDS) 共享,通過跨進程共享通用類元數(shù)據(jù)來減少內(nèi)存占用空間,和減少啟動時間。
  6. JEP312,ThreadLocal 握手交互。在不進入到全局 JVM 安全點 (Safepoint) 的情況下,對線程執(zhí)行回調(diào)。優(yōu)化可以只停止單個線程,而不是停全部線程或一個都不停。
  7. JEP313,移除 JDK 中附帶的 javah 工具??梢允褂?javac -h 代替。
  8. JEP314,使用附加的 Unicode 語言標記擴展。
  9. JEP317,能將堆內(nèi)存占用分配給用戶指定的備用內(nèi)存設(shè)備。
  10. JEP317,使用 Graal 基于 Java 的編譯器,可以預先把 Java 代碼編譯成本地代碼來提升效能。
  11. JEP318,在 OpenJDK 中提供一組默認的根證書頒發(fā)機構(gòu)證書。開源目前 Oracle 提供的的 Java SE 的根證書,這樣 OpenJDK 對開發(fā)人員使用起來更方便。
  12. JEP322,基于時間定義的發(fā)布版本,即上述提到的發(fā)布周期。版本號為$FEATURE.$INTERIM.$UPDATE.$PATCH,分別是大版本,中間版本,升級包和補丁版本。

JDK  11

2018-9-25發(fā)布

官網(wǎng)公開的 17 個 JEP(JDK Enhancement Proposal 特性增強提議):

  1. JEP181: Nest-Based Access Control(基于嵌套的訪問控制)
  2. JEP309: Dynamic Class-File Constants(動態(tài)的類文件常量)
  3. JEP315: Improve Aarch74 Intrinsics(改進 Aarch74 Intrinsics)
  4. JEP318: Epsilon: A No-Op Garbage Collector(Epsilon 垃圾回收器,又被稱為”No-Op(無操作)”回收器)
  5. JEP320: Remove the Java EE and CORBA Modules(移除 Java EE 和 CORBA 模塊,JavaFX 也已被移除)
  6. JEP321: HTTP Client (Standard)
  7. JEP323: Local-Variable Syntax for Lambda Parameters(用于 Lambda 參數(shù)的局部變量語法)
  8. JEP324: Key Agreement with Curve25519 and Curve448(采用 Curve25519 和 Curve448 算法實現(xiàn)的密鑰協(xié)議)
  9. JEP327: Unicode 10
  10. JEP328: Flight Recorder(飛行記錄儀)
  11. JEP329: ChaCha20 and Poly1305 Cryptographic Algorithms(實現(xiàn) ChaCha20 和 Poly1305 加密算法)
  12. JEP330: Launch Single-File Source-Code Programs(啟動單個 Java 源代碼文件的程序)
  13. JEP331: Low-Overhead Heap Profiling(低開銷的堆分配采樣方法)
  14. JEP332: Transport Layer Security (TLS) 1.3(對 TLS 1.3 的支持)
  15. JEP333: ZGC: A Scalable Low-Latency Garbage Collector (Experimental)(ZGC:可伸縮的低延遲垃圾回收器,處于實驗性階段)
  16. JEP335: Deprecate the Nashorn JavaScript Engine(棄用 Nashorn JavaScript 引擎)
  17. JEP336: Deprecate the Pack200 Tools and API(棄用 Pack200 工具及其 API)

JDK 12

2019-3-19發(fā)布

  1. JEP189:Shenandoah: A Low-Pause-Time Garbage Collector (Experimental)
  2. JEP230:Microbenchmark Suite
  3. JEP325:Switch Expressions (Preview)
  4. JEP334:JVM Constants API
  5. JEP340:One AArch74 Port, Not Two
  6. JEP341:Default CDS Archives
  7. JEP344:Abortable Mixed Collections for G1
  8. JEP346:Promptly Return Unused Committed Memory from G1

JDK 13

2019-9-17 發(fā)布

  1. JEP350:Dynamic CDS Archives
  2. JEP351:ZGC: Uncommit Unused Memory
  3. JEP353:Reimplement the Legacy Socket API
  4. JEP354:Switch Expressions
  5. JEP355:Text Blocks

JDK 14

預計2020/03/17 General Availability

  1. JEP 305: Pattern Matching for instanceof (Preview)
  2. JEP 358: Helpful NullPointerExceptions
  3. JEP 361: Switch Expressions (Standard)
  4. JEP 345: NUMA-Aware Memory Allocation for G1
  5. JEP 349: JFR Event Streaming
  6. JEP 366: Deprecate the ParallelScavenge + SerialOld GC Combination
  7. JEP 363: Remove the CMS Garbage Collector
  8. JEP 364: ZGC on macOS
  9. JEP 368: Text Blocks (Second Preview)

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI