碼農飛升記-00-Java發展歷程

1.Java發佈歷程

1995年5月23日,Sun 公司正式發佈Java 和 HotJava 瀏覽器。

1996年1月23日,Sun 公司正式發佈 JDK 1.0。

1997年2月19日,Sun 公司正式發佈 JDK 1.1。

1998年12月8日,Sun 公司正式發佈 J2SE 1.2。

2000年5月8日,Sun 公司正式發佈 J2SE 1.3。

2002年2月26日,Sun 公司正式發佈 J2SE 1.4。

2004年9月30日,Sun 公司正式發佈 J2SE 1.5。

2006年12月11日,Sun 公司正式發佈 Java SE 6。

2011年7月7日,Oracle 公司發佈了 Java SE 7。

2014年3月18日,Oracle 公司發佈了 Java SE 8 (特殊的 LTS)。

2017年9月21日,Oracle 公司發佈 Java SE 9 (non-LTS)。

2018年3月20日,Oracle 公司發佈 Java SE 10 (non-LTS)。

2018年9月25日,Oracle 公司發佈 Java SE 11 (LTS)。

2019年3月19日,Oracle 公司發佈 Java SE 12 (non-LTS)。

2019年9月17日,Oracle 公司發佈 Java SE 13 (non-LTS)。

2020年3月17日,Oralce 公司發佈 Java SE 14 (non-LTS)。

2020年9月15日,Oracle 公司發佈 Java SE 15 (non-LTS)。

2021年3月16日,Oracle 公司發佈 Java SE 16 (non-LTS)。

2.Java發展史

Oak 的出現( Java 的雛形)

20世紀90年代,硬件領域出現了單片式計算機系統,這種價格低廉的系統一出現就立即引起了自動控制領域人員的注意,因為使用它可以大幅度提升消費類電子產品(如電視機頂盒、麵包烤箱、流動電話等)的智能化程度。Sun Microsystems 公司為了搶佔市場先機,在1991年成立了一個稱為 Green 的項目小組,James Gosling 及其團隊一起組成的工作小組在 State of CaliforniaMenlo Park 市沙丘路的一個小工作室裏面研究開發新技術,專攻計算機在家電產品上的嵌入式應用。

由於 C++ 所具有的優勢,該項目組的研究人員首先考慮採用 C++ 來編寫程序。但對於硬件資源極其匱乏的單片式系統來說,C++ 程序過於複雜和龐大。另外由於消費電子產品所採用的嵌入式處理器芯片的種類繁雜,如何讓編寫的程序跨平台運行也是個難題。為了解決困難,他們首先着眼於語言的開發,假設了一種結構簡單、符合嵌入式應用需要的硬件平台體系結構並為其制定了相應的規範,其中就定義了這種硬件平台的二進制機器碼指令系統(即後來成為「位元組碼」的指令系統),以待語言開發成功後,能有半導體芯片生產商開發和生產這種硬件平台。對於新語言的設計,Sun 公司研發人員並沒有開發一種全新的語言,而是根據嵌入式軟件的要求,對 C++ 進行了改造,去除了留在 C++ 的一些不太實用及影響安全的成分,並結合嵌入式系統的實時性要求,開發了一種稱為 Oak 的面向對象語言
由於在開發 Oak 語言時,尚且不存在運行位元組碼的硬件平台,所以為了在開發時可以對這種語言進行實驗研究,他們就在已有的硬件和軟件平台基礎上,按照自己所指定的規範,用軟件建設了一個運行平台,整個系統除了比 C++ 更加簡單之外,沒有什麼大的區別。1992年的夏天,當 Oak 語言開發成功後,研究者們向硬件生產商進行演示了 Green 操作系統、Oak 的程序設計語言、類庫和其硬件,以說服他們使用 Oak 語言生產硬件芯片,但是,硬件生產商並未對此產生極大的熱情。因為他們認為,在所有人對 Oak 語言還一無所知的情況下,就生產硬件產品的風險實在太大了,所以 Oak 語言也就因為缺乏硬件的支持而無法進入市場,從而被擱置了下來。

1994年6、7月間,在經歷了一場歷時三天的討論之後,團隊決定再一次改變了努力的目標,這次他們決定將該技術應用於萬維網。他們認為隨着 Mosaic 瀏覽器的到來,互聯網正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網中看到的。作為原型,帕特里克·諾頓寫了一個小型萬維網瀏覽器 WebRunner。

1995年 Java 的誕生

1995年,互聯網的蓬勃發展給了 Oak 機會。業界為了使死板、單調的靜態網頁能夠「靈活」起來,急需一種軟件技術來開發一種程序,這種程序可以通過網絡傳播並且能夠跨平台運行。於是,世界各大IT企業為此紛紛投入了大量的人力、物力和財力。這個時候,Sun 公司想起了那個被擱置起來很久的 Oak,並且重新審視了那個用軟件編寫的試驗平台,由於它是按照嵌入式系統硬件平台體系結構進行編寫的,所以非常小,特別適用於網絡上的傳輸系統,而 Oak 也是一種精簡的語言,程序非常小,適合在網絡上傳輸。
Sun 公司首先推出了可以嵌入網頁並且可以隨同網頁在網絡上傳輸的 Applet(Applet是一種將小程序嵌入到網頁中進行執行的技術),並將 Oak 更名為 Java(在申請註冊商標時,發現 Oak 已經被人使用了,再想了一系列名字之後,最終,使用了提議者在喝一杯 Java 咖啡時無意提到的 Java 詞語)。

1995年5月23日,Sun 公司在 Sun world 會議上正式發佈 Java 和 HotJava 瀏覽器。IBMAppleDECAdobeHPOracleNetscapeMicrosoft 等各大公司都紛紛停止了自己的相關開發項目,競相購買了 Java 使用許可證,並為自己的產品開發了相應的 Java 平台。

1996年 Sun 公司發佈第一個 JDK

1996年1月23日,Sun 公司發佈了 Java 的第一個開發工具包(JDK 1.0),這是 Java 發展歷程中的重要里程碑,標誌着 Java 成為一種獨立的開發工具。9月,約8.3萬個網頁應用了 Java 技術來製作。10月,Sun 公司發佈了 Java 平台的第一個即時編譯器 JIT(Just-In-Time Compiler)

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

1996年9月,約8.3萬個網頁應用了JAVA技術來製作。

1997年2月19日,JDK 1.1 面世,在隨後的3周時間裏,達到了22萬次的下載量。

1997年4月2日,Java One 會議召開,參會者逾一萬人,創當時全球同類會議規模之紀錄。

1997年9月,Java Developer Connection 社區成員超過10萬。

1998年2月,JDK1.1被下載超過2,00萬次。

1998年12月用 J2SE 取代 JDK 命名,以區別 J2EE 和 J2ME 平台

1998年12月8日,JAVA2 企業平台 J2EE 發佈,該版本到J2SE 5.0為止的後續版本被更名為 Java 2,而版本名稱「J2SE」(Java 2平台,標準版)取代 JDK 以區別 J2EE(Java 2平台,企業版) 和 J2ME(Java 2 Platform,Micro Edition)基礎平台。這是 Java 的一個非常重要的版本,它將 Java 平台的大小增加至原先的三倍,在59個程序包中達到了1520個類。

1999年4月27日,HotSpot 虛擬機發佈。HotSpot 虛擬機發佈時是作為 JDK 1.2 的附加程序提供的,後來它成為了 JDK 1.3 及之後所有版本的 Sun JDK 的默認虛擬機。

1999年6月,Sun 公司發佈了第二代 Java 平台(簡稱為Java2)的3個版本:

J2ME(Java2 Micro Edition,Java2 平台的微型版),應用於移動、無線及有限資源的環境;

J2SE(Java 2 Standard Edition,Java 2 平台的標準版),應用於桌面環境;

J2EE(Java 2 Enterprise Edition,Java 2 平台的企業版),應用於基於 Java 的應用服務器。Java 2 平台的發佈,是 Java 發展過程中最重要的一個里程碑,標誌着 Java 的應用開始普及。

2000年5月8日,JDK 1.3 發佈。

2000年5月29日,JDK 1.4 發佈。

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

2001年9月24日,J2EE1.3 發佈。

2002年2月26日,J2SE1.4 發佈。自此 Java 的計算能力有了大幅提升,與 J2SE1.3 相比,其多了近62%的類和接口。在這些新特性當中,還提供了廣泛的 XML 支持、安全套接字(Socket)支持(通過SSL與TLS協議)、全新的 I/OAPI 、正則表達式、日誌與斷言。

2004年9月30日,J2SE1.5 發佈,成為 Java 語言發展史上的又一里程碑。為了表示該版本的重要性,J2SE 1.5 更名為 Java SE 5.0(內部版本號1.5.0),代號為 「Tiger」,Tiger 包含了從1996年發佈1.0版本以來的最重大的更新,其中包括泛型支持、基本類型的自動裝箱、改進的循環、枚舉類型、格式化 I/O 及可變參數。

2005年發佈J2SE 6並更名為 Java SE 6(全平台更名移除’2′)

2005年6月,JavaOne 大會召開,Sun 公司公開 Java SE 6。此時,Java 的各種版本已經更名,以取消其中的數字「2」:J2EE 更名為 Java EE,J2SE 更名為 Java SE,J2ME 更名為 Java ME。

2006年 Sun 宣布 Java 基於 GPL 開源

2006年11月13日,Sun 公司宣布 Java 全線採納 GNU General Public License Version 2,將 Java 技術作為免費軟件對外發佈,從而正式公開了Java 平台標準版的第一批源代碼,以及 Java 迷你版的可執行源代碼。

2006年12月11日,Sun把原本的名稱「 J2SE 」改為「 Java SE 」,然後再從版本號中去掉「.0」,而開發者內部編號仍然是1.6.0。這個版本是根據 JSR 270 開發的。在發展階段,新版本大概每周都發佈包括一些功能增強和漏洞的修復。Beta 版本在2006年2月和6月發佈,也就是為什麼2006年12月11日變成最終的版本。

2006年12月23日, Java SE 6 正式發佈。

從2007年3月起,全世界所有的開發人員均可對 Java 源代碼進行修改。

2009年 Sun 被 Oracle 收購

2009年4月20日,Oracle 公司宣布收購 Sun。

2009年12月,Sun 公司發佈Java EE 6。

2010年,Oracle 公司正式收購 Sun,Java 編程語言的共同創始人之一 James Gosling 從 Oracle 公司辭職。

2010年11月,由於 Oracle 公司對於Java社區的不友善,因此Apache揚言將退出JCP。

2011年7月28日,Oracle 公司舉行了全球性的活動,以慶祝 Java7 的推出,隨後 Java7 正式發佈。

2014年3月 Java8 (特殊的 LTS)發佈

2014年3月18日,Oracle 公司發佈了 Java SE 8(特殊的 LTS)。

2017年9月 Java9 (non-LTS)發佈,並啟動新的版本控制和發佈節奏模型

2017年9月21日,Oracle 公司發佈 Java SE 9(non-LTS),並啟動新的版本控制和發佈節奏模型。
整體發佈節奏為每六個月發佈一個新版本,其中每六個月發佈一次non-LTS版本,每三年發佈一次LTS版本(當二者發佈時間衝突時,優先發佈LTS版本,non-LTS版本向後推遲一個周期)。
non-LTS版本發佈後會得到六個月的商業支持,到期後會被新發佈版本取代;LTS版本發佈後會得到至少八年的商業支持(根據市場需要有可能會延長),到期後會被新的LTS版本取代。

2018年3月20日,Oracle 公司發佈 Java SE 10(non-LTS)。

2018年9月 Java11 (LTS)發佈

2018年9月25日,Oracle 公司發佈 Java SE 11(LTS)。

2019年3月19日,Oracle 公司發佈 Java SE 12(non-LTS)。

2019年9月17日,Oracle 公司發佈 Java SE 13(non-LTS)。

2020年3月17日,Oralce 公司發佈 Java SE 14(non-LTS)。

2020年9月15日,Oracle 公司發佈 Java SE 15(non-LTS)。

2021年3月16日,Oracle 公司發佈 Java SE 16(non-LTS)。

參考資料(排名不分先後)

Oracle JDK 主頁
維基百科-Java
百度百科-Java
Oracle戰略收購Sun聲明
維基百科-Java版本歷史