Java 發展歷程

JDK 1.0

1991年4月,由 James Gosling 博士領導的綠色計劃(Green Project)開始啓動,此計劃的目的是開發一種可以在各類消費性電子產品(如機頂盒、冰箱、收音機等)上運行的程序架構。這個計劃的產品就是Java語言的前身:Oak(橡樹)。Oak當時在消費品市場上並不算成功,但隨着1995年互聯網潮流的興起,Oak 迅速找到了最適合本身發展的市場定位並蛻變成爲 Java 語言。java

1995年5月23日,Oak 語言正式改名爲 Java,Java 語言第一次提出了 「Write Once,Run Anywhere」的口號,這一天也被稱爲 Java 誕生日。程序員

1996年1月23日,JDK 1.0 發佈,表明技術包括 Java 虛擬機(Sun Classic VM)、Applet、AWT 等。正則表達式

1996年4月,10個最主要的操做系統供應商申明將在其產品中嵌入 Java 技術。算法

1996年5月,Sun 公司於美國舊金山舉行了首屆 JavaOne 大會。shell

1996年9月,已有大約 8.3 萬個網頁應用了 Java 技術來製做。編程

JDK 1.1

1997年2月19日,JDK 1.1 發佈,表明技術包括 Jar 文件格式、JDBC、JavaBeans、RMI、內部類、反射等。性能優化

JDK 1.1 一共發佈了 1.1.0 - 1.1.8 九個版本,從1.1.4 以後,每一個 JDK 版本都有本身的一個代號:服務器

版本 代號 時間
JDK 1.1.4 Sparkler(寶石) 1997-09-12
JDK 1.1.5 Pumpkin(南瓜) 1997-12-13
JDK 1.1.6 Abigail(阿比蓋爾--女子名) 1998-04-24
JDK 1.1.7 Brutus(布魯圖--古羅馬政治家和將軍) 1998-09-28
JDK 1.1.8 Chelsea(切爾西--城市名) 1999-04-08

1998年2月,JDK 1.1 被下載超過 2,000,000 次。架構

JDK 1.2(Playground - 競技場)

1998年12月4號,JDK 1.2 發佈,這個版本把 Java 技術體系分爲三個部分,即 J2SE(面向桌面應用開發)、J2EE(面向企業級開發)、J2ME(面向移動終端開發)。表明技術包括 EJB、Java Plugin-in、Java IDL、Swing、內置 JIT 編譯器、Collections集合類等。併發

JDK 1.2 共有兩個修訂版本:

版本 代號 時間
JDK 1.2.1 - 1999-03-30
JDK 1.2.2 Cricket(蟋蟀) 1999-07-08

JDK 1.3(Kestrel - 紅隼)

2000年5月8號,JDK 1.3 發佈,這個版本開始 HotSpot 成爲了 JDK 的默認虛擬機,表明技術有 JNDI、Timer、Java 2D、JavaSound、數學運算等。

JDK 1.3 有一個修正版本:

版本 代號 時間
JDK 1.3.1 Ladybird(瓢蟲) 2001-05-17

2001年6月5日,NOKIA 宣佈,到 2003 年將出售 1 億部支持 Java 的手機。

JDK 1.4(Merlin - 灰背隼)

2002年2月13日,JDK 1.4 發佈,這是 Java 真正走向成熟的一個版本,表明技術包括:正則表達式、異常鏈、NIO、日誌類、XML 解析器和 XSLT 轉換器等。

JDK 1.4 有兩個修正版本:

版本 代號 時間
JDK 1.4.1 grasshopper(蚱蜢) 2002-09-16
JDK 1.4.2 Mantis(螳螂) 2003-06-26

JDK 1.5(Tiger - 老虎)

2004年9月30日,JDK 1.5 發佈,表明技術有自動裝箱、泛型、動態註解、枚舉、可變長參數、加強 for 循環等。這個版本還改進了 Java 的內存模型、提供了 java.util.concurrent 併發包等。

2006年11月13日,Sun 公司宣佈最終會將 Java 開源,並在隨後的一年多時間內,陸續將 JDK 的各個部分在 GPL V2 協議下公開了源碼,並創建了 OpenJDK 組織對這些源碼進行獨立管理。(正式開源的版本是 JDK 6)

JDK 6(Mustang - 野馬)

2006年12月11號,JDK 6 發佈,從這個版本開始,J2SE、J2EE、J2ME 的稱呼將不在使用,啓用 Java SE、Java EE、Java ME 的命名方式。另外,JDK 的公開版本號也變成了 JDK 六、JDK 7 的命名方式,而程序員內部使用的開發版本號(java -version)繼續沿用了 1.六、1.7 這樣的稱呼。

JDK 6 的表明技術有動態語言支持(經過內置 Mozilla JavaScript Rhino 引擎實現)、編譯 API 和微型 HTTP 服務器 API 等。同時,這個版本對 Java 虛擬機內部作了大量改進,包括鎖與同步、垃圾收集、類加載等方面的算法都有至關大的改動。

2008年1月16日,Oracle 收購 BEA,獲取了 JRockit 虛擬機的全部權。

JDK 7(Dolphin - 海豚)

2009年2月19日,JDK 7 發佈,主要改進包括:提供新的 G1 收集器、升級類加載架構、Fork/Join 框架等。

2009年4月20日,Oracle 收購 Sun,得到了 HotSpot 虛擬機的全部權。可是 Java 語言自己並不屬於哪一個公司,它是由 JCP(Java Community Process)組織管理的,JCP 之前主要是由 Sun 公司領導,如今主要由 Oracle 領導,僅此而已。

2010年12月,Apache 基金會由於其 Harmony 虛擬機的 TCK 受權問題和 Oracle 愈演愈烈,憤然退出 JCP,這也是 Java 史上最大的一次分裂。

JDK 8(Spider - 蜘蛛)

2014年3月18日,JDK 8 發佈,又是一個里程碑的版本,表明技術包括 Lambda 表達式、函數式編程、Stream API、新的時間類型等。

JDK 9

2017 年 8 月,甲骨文宣佈要將 Java EE 轉移到開源陣營。一個月後,Oracle 將 Java EE 轉移到 Eclipse 基金會,Oracle 也繼續支持現有的 Java EE 許可證。不過,Oracle 可不容許開源組織用 Java 的名號,因而 Eclipse 選出了 "Jakarta EE" 和 "Enterprise Profile" 兩個後續按名字,最終前者以64.4%的票數獲勝。也就是說 ,Java EE已經正式改名爲 Jakarta EE、Java Community Process 改名爲 Eclipse EE.next Working Group。

2017年9月,JDK 9 發佈,加入了跳票兩個版本 JigSaw 模塊功能、新增了REPL(Read-Eval-Print Loop)工具 jshell、加強 Stream API 等。

2017年9月,Oracle 宣佈,爲了更快地迭代,以及跟進社區反饋,Java 的版本發佈週期變動爲每半年發佈一個大版本,每一個季度發佈一箇中間特性版本,而且承諾不會跳票。經過這樣的方式,開發團隊能夠把一些關鍵特性儘早合併到 JDK 之中,以快速獲得開發者反饋。按照官方的說法,新的發佈週期會嚴格遵循時間點,將於每一年的3月份和9月份發佈。

JDK 10

2018年4月17日,JDK 10 發佈,主要是少部分 API 更新以及 bug 修復,提供一組默認的 root 認證權威(CA)證書。

JDK 11

2018年9月25日,JDK 11 發佈,這是自 Java 8 後的首個長期支持的版本,表明技術主要包括:本地變量類型推斷(var )、Stream 增強、字符串增強、HTTP Client API 等。

2018年9月,伴隨着 JDK 11 的發佈,還有一個頗具影響的新聞,就是 Java 收費問題。Oracle 宣佈 JDK 8 的商業版本在2019年1月前中止免費更新,以前版本能無償使用,以後版本交費繼續更新使用。 JDK 8 的我的版本在2020年12月中止更新,以前版本無償使用,到期後須要交費繼續更新使用。而JDK11沒有我的版本一說,只要用於商業應用就須要交費。

JDK 12

2019年3月19日,JDK 12 發佈,主要特性包括:switch 支持表達式、以及一些 JVM 的性能優化等。

JDK 13

2019年9月13日,JDK 13 發佈,主要特性包括:從新實現傳統套接字API、switch 表達式預覽、加強 ZGC 等。



...未完待續



tips:收集了書籍、網上的一些資料,若有侵權,煩請告知。歡迎你們補充~~

相關文章
相關標籤/搜索