1991.4? ? ? Sun公司成立Green項目小組膜毁,開發(fā)出Oak語言
1995.5.23 Oak更名為Java航邢,提出了“Write Once,Run Anywhere”的口號宋税。
1996.1.23? JDK1.0發(fā)布靡努,代表技術(shù)包括:Java虛擬機坪圾、Applet、AWT等惑朦。
1996.5 ? ? ? Sun公司舉行首屆JavaOne大會
1997.2.19? JDK1.1發(fā)布兽泄,代表技術(shù)有:JAR文件格式、JDBC漾月、JavaBeans病梢、RMI。Java語法也有了一定的發(fā)展,如內(nèi)部類(Inner Class)和反射(Reflection)
1998.12.4? JDK1.2 ?Playground(競技場)發(fā)布蜓陌,分為J2SE觅彰、J2EE和J2ME三大版本?
在這個版本中出現(xiàn)的代表性技術(shù)非常多,如EJB钮热、Java Plug-in填抬、Java IDL、Swing等隧期,并且這個版本中Java虛擬機第一次內(nèi)置了JIT(Just In Time)編譯器(JDK 1.2中曾并存過3個虛擬機飒责,Classic VM、HotSpot VM和Exact VM仆潮,其中Exact VM只在Solaris平臺出現(xiàn)過宏蛉;后面兩個虛擬機都是內(nèi)置JIT編譯器的,而之前版本所帶的Classic VM只能以外掛的形式使用JIT編譯器)性置。在語言和API級別上檐晕,Java添加了strictfp關(guān)鍵字與現(xiàn)在Java編碼之中極為常用的一系列Collections集合類。
截止到1999年4月8日蚌讼,JDK 1.1一共發(fā)布了1.1.0~1.1.8共九個版本辟灰。從1.1.4之后,每個JDK版本都有一個自己的名字(工程代號)篡石,分別為:JDK 1.1.4 - Sparkler(寶石)芥喇、JDK 1.1.5 - Pumpkin(南瓜)、JDK 1.1.6 - Abigail(阿比蓋爾凰萨,女子名)继控、JDK 1.1.7 - Brutus(布魯圖,古羅馬政治家和將軍)和JDK 1.1.8 – Chelsea(切爾西胖眷,城市名)武通。
1999.4.27? HotSpot虛擬機發(fā)布,HotSpot最初由一家名為“Longview Technologies”的小公司開發(fā)珊搀,因為HotSpot的優(yōu)異表現(xiàn)冶忱,這家公司在1997年被Sun公司收購了。HotSpot虛擬機發(fā)布時是作為JDK 1.2的附加程序提供的境析,后來它成為了JDK 1.3及之后所有版本的Sun JDK的默認虛擬機囚枪。
2000.5.8? JDK1.3 ?Kestrel(美洲紅隼)發(fā)布
JDK 1.3相對于JDK 1.2的改進主要表現(xiàn)在一些類庫上(如數(shù)學運算和新的Timer API等),JNDI服務從JDK 1.3開始被作為一項平臺級服務提供(以前JNDI僅僅是一項擴展)劳淆,使用CORBA IIOP來實現(xiàn)RMI的通信協(xié)議链沼,等等。
自從JDK 1.3開始沛鸵,Sun維持了一個習慣:大約每隔兩年發(fā)布一個JDK的主版本括勺,以動物命名,期間發(fā)布的各個修正版本則以昆蟲作為工程名稱。
2002.2.13 ?JDK1.4 Merlin(灰背隼)發(fā)布
JDK 1.4是Java真正走向成熟的一個版本疾捍,Compaq奈辰、Fujitsu、SAS拾氓、Symbian冯挎、IBM等著名公司都有參與甚至實現(xiàn)自己獨立的JDK 1.4底哥。哪怕是在十多年后的今天咙鞍,仍然有許多主流應用(Spring、Hibernate趾徽、Struts等)能直接運行在JDK 1.4之上续滋,或者繼續(xù)發(fā)布能運行在JDK 1.4上的版本。
JDK 1.4同樣發(fā)布了很多新的技術(shù)特性孵奶,如正則表達式疲酌、異常鏈、NIO了袁、日志類朗恳、XML解析器和XSLT轉(zhuǎn)換器等。
JDK 1.4有兩個后續(xù)修正版:
2002年9月16日發(fā)布的工程代號為Grasshopper(蚱蜢)的JDK 1.4.1
2003年6月26日發(fā)布的工程代號為Mantis(螳螂)的JDK 1.4.2载绿。
2002年前后還發(fā)生了一件與Java沒有直接關(guān)系粥诫,但事實上對Java的發(fā)展進程影響很大的事件,那就是微軟公司的.NET Framework發(fā)布了崭庸。這個無論是技術(shù)實現(xiàn)上還是目標用戶上都與Java有很多相近之處的技術(shù)平臺給Java帶來了很多討論怀浆、比較和競爭,.NET平臺和Java平臺之間聲勢浩大的孰優(yōu)孰劣的論戰(zhàn)到目前為止都在繼續(xù)怕享。
2004.9.30 JDK 1.5 Tiger(老虎)發(fā)布
從JDK 1.2以來执赡,Java在語法層面上的變換一直很小,而JDK 1.5在Java語法易用性上做出了非常大的改進函筋。例如沙合,自動裝箱、泛型跌帐、動態(tài)注解灌诅、枚舉、可變長參數(shù)含末、遍歷循環(huán)(foreach循環(huán))等語法特性都是在JDK 1.5中加入的猜拾。在虛擬機和API層面上,這個版本改進了Java的內(nèi)存模型(Java Memory Model佣盒,JMM)挎袜、提供了java.util.concurrent并發(fā)包等。另外,JDK 1.5是官方聲明可以支持Windows 9x平臺的最后一個JDK版本盯仪。
2006.11.13 ?JavaOne大會紊搪,Sun公司宣布將Java開源
在隨后的一年多時間內(nèi),陸續(xù)將JDK的各個部分在GPL v2(GNU General Public License v2)協(xié)議下公開了源碼全景,并建立了OpenJDK組織對這些源碼進行獨立管理耀石。除了極少量的產(chǎn)權(quán)代碼(Encumbered Code,這部分代碼大多是Sun本身也無權(quán)限進行開源處理的)外爸黄,OpenJDK幾乎包括了Sun JDK的全部代碼滞伟,OpenJDK的質(zhì)量主管曾經(jīng)表示,在JDK 1.7中炕贵,Sun JDK和OpenJDK除了代碼文件頭的版權(quán)注釋之外梆奈,代碼基本上完全一樣,所以OpenJDK 7與Sun JDK 1.7本質(zhì)上就是同一套代碼庫開發(fā)的產(chǎn)品称开。
2006.12.11 JDK6 Mustang(野馬)發(fā)布
在這個版本中亩钟,Sun終結(jié)了從JDK 1.2開始已經(jīng)有8年歷史的J2EE、J2SE鳖轰、J2ME的命名方式清酥,啟用Java SE 6、Java EE 6蕴侣、Java ME 6的命名方式焰轻。JDK6的改進包括:提供動態(tài)語言支持(通過內(nèi)置Mozilla Java Rhino引擎實現(xiàn))、提供編譯API和微型HTTP服務器API等睛蛛。同時鹦马,這個版本對Java虛擬機內(nèi)部做了大量改進,包括鎖與同步忆肾、垃圾收集荸频、類加載等方面的算法都有相當多的改動。
JDK6發(fā)布以后客冈,由于代碼復雜性的增加旭从、JDK開源、開發(fā)JavaFX场仲、經(jīng)濟危機及Sun收購案等原因和悦,Sun在JDK發(fā)展以外的事情上耗費了很多資源,JDK的更新沒有再維持兩年發(fā)布一個主版本的發(fā)展速度渠缕。JDK6發(fā)布了37個Update版本鸽素,最新的版本為Java SE 6 Update 37,于2012年10月16日發(fā)布亦鳞。
2009.2.19馍忽,JDK7 Dolphin(海豚)完成了第一個里程碑版本
根據(jù)JDK7的功能規(guī)劃棒坏,一共設置了10個里程碑。最后一個里程碑版本原計劃于2010年9月9日結(jié)束遭笋,但由于各種原因坝冕,JDK7最終無法按計劃完成。
JDK7已經(jīng)發(fā)布了9個Update版本瓦呼,最新的Java SE 7 Update 9于2012年10月16日發(fā)布喂窟。從Java SE 7 Update 4起,Oracle開始支持Mac OS X操作系統(tǒng)央串,并在Update 6中達到完全支持的程度磨澡,同時,在Update 6中還對ARM指令集架構(gòu)提供了支持蹋辅。至此钱贯,官方提供的JDK可以運行于Windows(不含Windows 9x)挫掏、Linux侦另、Solaris和Mac OS平臺上,支持ARM尉共、x86褒傅、x64和Sparc指令集架構(gòu)類型。
2009.4.20 ?Oracle74億美元收購Sun
2011.7.28 ?Oracle正式發(fā)布JDK7
JDK7新特性參見 http://www.ibm.com/developerworks/cn/java/j-lo-jdk7-1/?
2014.3.19 ?Oracle發(fā)布JDK8
JDK8最新的版本是Java SE Development Kit 8u121
JDK8新特性參見 http://www.jb51.net/article/48304.htm