- 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發行,主要更新內容:
JAVA 1.2, 代號Playground(操場)
1998-12-8發行,主要更新內容:
- 引入JFC(Java Foundation Classes),包括Swing1.0,拖放和Java2D類庫
- JDBC中引入可滾動結果集,BLOB,CLOB,批量更新和用戶自定義類型
JAVA1.3,代號Kestrel(紅隼)
2000-5-8發布,主要更新內容:
- Java Platform Debugger Architecture用于 Java 調式的平臺。
JAVA 1.4,代號Merlin(隼)
2004-2-6發布(首次在JCP下發行),主要更新內容:
- 添加Java打印服務(Java Print Service API)
- NIO,非阻塞的 IO,優化 Java 的 IO 讀取。
JDK 5.0,代號Tiger(老虎),有重大改動
2004-9-30發布,主要更新內容:
- 提供了 java.util.concurrent 并發包。
JDK 6,代號Mustang(野馬)
2006-12-11發布,主要更新內容:
- 引入了一個支持腳本引擎的新框架(基于 Mozilla Rhino 的 JavaScript 腳本引擎)
- 對WebService支持的增強(JAX-WS2.0 和 JAXB2.0)
JDK 7,代號Dolphin(海豚)
2011-07-28發布,這是sun被oracle收購(2009年4月)后的第一個版本,主要更新內容:
- 在創建泛型對象時應用類型推斷,比如你之前版本使用泛型類型時這樣寫 ArrayList<User> userList= new ArrayList<User>();,這個版本只需要這樣寫 ArrayList<User> userList= new ArrayList<>();,也即是后面一個尖括號內的類型,JVM 幫我們自動類型判斷補全了。
- 添加try-with-resources語法支持,使用文件操作后不用再顯示執行close了。
- JSR203, NIO.2,AIO,新I/O文件系統,增加多重文件的支持、文件原始數據和符號鏈接,支持ZIP文件操作
- 支持帶下劃線的數值,如 int a = 100000000;,0 太多不便于人閱讀,這個版本支持這樣寫 int a = 100_000_000,這樣就對數值一目了然了。
- Swing組件增強(JLayer,Nimbus Look Feel…)參考
JDK 8
2014-3-19發布,oracle原計劃2013年發布,由于安全性問題兩次跳票,是自JAVA5以來最具革命性的版本,主要更新內容:
- 接口改進,接口居然可以定義默認方法實現和靜態方法了。
- 引入全新的Stream API,提供了對值流進行函數式操作。
JDK 9
2017-9-21發布
JDK 10
2018-3-21發布
- JEP296,將原來用 Mercurial 管理的眾多 JDK 倉庫代碼,合并到一個倉庫中,簡化開發和管理過程。
- 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 Aarch74 Intrinsics(改進 Aarch74 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 算法實現的密鑰協議)
- 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)
- JEP340:One AArch74 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
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 368: Text Blocks (Second Preview)