它,是一部全網最全的JDK發展歷史軌跡圖...

Java語言的相關組織和規範(其餘語言也有相似的組織):java

JCP:(Java Community Process)由世界上各個爲 Java 發展操心的人士組成的社區,參與web

定義 Java 新特性和新版本制定標準的組織。正則表達式

JSR:(Java Specification Requests)Java 語言規範請求文檔,你能夠對 Java 提出新的要求,而後 Java 相關的組織投票決定是否經過,經過後就將這個要求寫入 JSR 中,而且最終給出一個開源的實現。算法

JEP:(Java Enhancement Proposal),Java 加強建議,收集你們對於 JDK 的建議,起草加強 Java 哪些功能的方案,爲 JDK 新版本發佈及相關工做指定路線。數組

webp

它,是一部全網最全的JDK發展歷史軌跡圖...緩存

# JAVA 1.0 ,代號Oak(橡樹)安全

於1996-01-23發行性能優化

# JAVA 1.1併發

1997-02-19發行,主要更新內容:oracle

1.引入JDBC

2.添加內部類支持

3.引入JAVA BEAN

4.引入RMI

5.引入反射

# JAVA 1.2, 代號Playground(操場)

1998-12-8發行,主要更新內容:

1.引入集合框架

2.對字符串常量作內存映射

3.引入JIT(Just In Time)編譯器

4.引入打包文件數字簽名

5.引入控制受權訪問系統資源策略工具

6.引入JFC(Java Foundation Classes),包括Swing1.0,拖放和Java2D類庫

7.引入Java插件

8.JDBC中引入可滾動結果集,BLOB,CLOB,批量更新和用戶自定義類型

9.Applet中添加聲音支持

# JAVA1.3,代號Kestrel(紅隼)

2000-5-8發佈,主要更新內容:

1.引入Java Sound API

2.引入jar文件索引

3.對Java各方面多了大量優化和加強

4.Java Platform Debugger Architecture用於 Java 調式的平臺。

# JAVA 1.4,代號Merlin(隼)

2004-2-6發佈(首次在JCP下發行),主要更新內容:

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,優化 Java 的 IO 讀取。

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

2004-9-30發佈,主要更新內容:

1.引入泛型

2.For-Each循環 加強循環,可以使用迭代方式

3.自動裝箱與自動拆箱

4.引入類型安全的枚舉

5.引入可變參數

6.添加靜態引入

7.引入註解

8.引入Instrumentation

9.提供了 java.util.concurrent 併發包。

# JDK 6,代號Mustang(野馬)

2006-12-11發佈,主要更新內容:

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發佈,這是sun被oracle收購(2009年4月)後的第一個版本,主要更新內容:

1.switch語句塊中容許以字符串做爲分支條件

2.在建立泛型對象時應用類型推斷,好比你以前版本使用泛型類型時這樣寫 ArrayList<User> userList= new ArrayList<User>();,這個版本只須要這樣寫 ArrayList<User> userList= new ArrayList<>();,也便是後面一個尖括號內的類型,JVM 幫咱們自動類型判斷補全了。

3.在一個語句塊中捕獲多種異常

4.添加try-with-resources語法支持,使用文件操做後不用再顯示執行close了。

5.支持動態語言

6.JSR203, NIO.2,AIO,新I/O文件系統,增長多重文件的支持、文件原始數據和符號連接,支持ZIP文件操做

7.JDBC規範版本升級爲JDBC4.1

8.引入Fork/Join框架,用於並行執行任務

9.支持帶下劃線的數值,如 int a = 100000000;,0 太多不便於人閱讀,這個版本支持這樣寫 int a = 100_000_000,這樣就對數值一目瞭然了。

10.Swing組件加強(JLayer,Nimbus Look Feel…)參考

# JDK 8

2014-3-19發佈,oracle原計劃2013年發佈,因爲安全性問題兩次跳票,是自JAVA5以來最具革命性的版本,主要更新內容:

1.接口改進,接口竟然能夠定義默認方法實現和靜態方法了。

2.引入函數式接口

3.引入Lambda表達式

4.引入全新的Stream API,提供了對值流進行函數式操做。

5.引入新的Date-Time API

6.引入新的JavaScrpit引擎Nashorn

7.引入Base64類庫

8.引入併發數組(parallel)

9.添加新的Java工具:jjs、jdeps

10.JavaFX,一種用在桌面開發領域的技術

11.靜態連接 JNI 程序庫

# JDK 9

2017-9-21發佈

1.模塊化(jiqsaw)

2.交互式命令行(JShell)

3.默認垃圾回收期切換爲G1

4.進程操做改進

5.競爭鎖性能優化

6.分段代碼緩存

7.優化字符串佔用空間

# JDK 10

2018-3-21發佈

1.JEP286,var 局部變量類型推斷。

2.JEP296,將原來用 Mercurial 管理的衆多 JDK 倉庫代碼,合併到一個倉庫中,簡化開發和管理過程。

3.JEP304,統一的垃圾回收接口。

4.JEP307,G1 垃圾回收器的並行完整垃圾回收,實現並行性來改善最壞狀況下的延遲。

5.JEP310,應用程序類數據 (AppCDS) 共享,經過跨進程共享通用類元數據來減小內存佔用空間,和減小啓動時間。

6.JEP312,ThreadLocal 握手交互。在不進入到全局 JVM 安全點 (Safepoint) 的狀況下,對線程執行回調。優化能夠只中止單個線程,而不是停所有線程或一個都不停。

7.JEP313,移除 JDK 中附帶的 javah 工具。可使用 javac -h 代替。

8.JEP314,使用附加的 Unicode 語言標記擴展。

9.JEP317,能將堆內存佔用分配給用戶指定的備用內存設備。

10.JEP317,使用 Graal 基於 Java 的編譯器,能夠預先把 Java 代碼編譯成本地代碼來提高效能。

11.JEP318,在 OpenJDK 中提供一組默認的根證書頒發機構證書。開源目前 Oracle 提供的的 Java SE 的根證書,這樣 OpenJDK 對開發人員使用起來更方便。

12.JEP322,基於時間定義的發佈版本,即上述提到的發佈週期。版本號爲$FEATURE.$INTERIM.$UPDATE.$PATCH,分別是大版本,中間版本,升級包和補丁版本。

# JDK 11

2018-9-25發佈

官網公開的 17 個 JEP(JDK Enhancement Proposal 特性加強提議):

1.JEP181: Nest-Based Access Control(基於嵌套的訪問控制)

2.JEP309: Dynamic Class-File Constants(動態的類文件常量)

3.JEP315: Improve Aarch64 Intrinsics(改進 Aarch64 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 參數的局部變量語法)

8.JEP324: Key Agreement with Curve25519 and Curve448(採用 Curve25519 和 Curve448 算法實現的密鑰協議)

9.JEP327: Unicode 10

10.JEP328: Flight Recorder(飛行記錄儀)

11.JEP329: ChaCha20 and Poly1305 Cryptographic Algorithms(實現 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發佈

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 AArch64 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 發佈

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

正在開發階段,預計解決的任務。

2019/12/12 Rampdown Phase One (fork from main line)

2020/01/16 Rampdown Phase Two

2020/02/06 Initial Release Candidate

2020/02/20 Final Release Candidate

2020/03/17 General Availability

相關文章
相關標籤/搜索