J2SE歷史回顧:JDK 1.1時(shí)代開始
Java的歷史可以追溯到1991年4月,Sun公司的James Gosling領(lǐng)導(dǎo)的綠色計(jì)劃(Green Project)開始著力發(fā)展一種分布式系統(tǒng)結(jié)構(gòu),使其能夠在各種消費(fèi)性電子產(chǎn)品上運(yùn)行,他們使用了C/C++/Oak語言。由于電子產(chǎn)品種類繁多,運(yùn)行環(huán)境各不相同,使得用這些語言進(jìn)行開發(fā)的軟件必須為不同的電子產(chǎn)品而專門設(shè)計(jì),所以項(xiàng)目組疲于奔命,消費(fèi)性電子產(chǎn)品軟件環(huán)境的發(fā)展無法達(dá)到預(yù)期的目標(biāo),綠色計(jì)劃也陷于停滯狀態(tài)。
直至 1994年下半年,由于Internet的迅猛發(fā)展和環(huán)球信息網(wǎng) WWW的快速增長,第一個(gè)全球信息網(wǎng)絡(luò)瀏覽器Mosaic誕生了;此時(shí),工業(yè)界對(duì)適合在網(wǎng)絡(luò)異構(gòu)環(huán)境下使用的語言有一種非常急迫的需求;Games Gosling決定改變綠色計(jì)劃的發(fā)展方向,他們對(duì)Oak進(jìn)行了小規(guī)模的改造,就這樣,Java在1995年的3月23日誕生了!Java的誕生標(biāo)志著互聯(lián)網(wǎng)時(shí)代的開始,它能夠被應(yīng)用在全球信息網(wǎng)絡(luò)的平臺(tái)上編寫互動(dòng)性及強(qiáng)的Applet程序,而1995年的Applet無疑能給人們無窮的視覺和腦力震蕩。
但沒有相應(yīng)的開發(fā)庫而只靠Java語言來進(jìn)行開發(fā)肯定是困難重重,所以Sun公司在1996年的1月23日發(fā)布了JDK1.0來幫助開發(fā)人員的開發(fā)。JDK包括兩大部分:運(yùn)行環(huán)境和開發(fā)工具。而運(yùn)行環(huán)境包括五大部分:核心API,集成API,用戶界面API,發(fā)布技術(shù),Java虛擬機(jī)(JVM)。Java能夠在信息網(wǎng)絡(luò)時(shí)代快速發(fā)展,得益于它獨(dú)特的組成結(jié)構(gòu),它并不直接被編譯成所在平臺(tái)的機(jī)器語言然后執(zhí)行,而是先被編譯成字節(jié)碼,然后才到裝有JVM的硬件上運(yùn)行,所以它能夠跨平臺(tái)運(yùn)行;而且,不是一定要使用Java語言來寫程序才能編譯成Java字節(jié)碼,我們用C/C++/Javascript等語言來寫程序也可以編譯出JVM要求的字節(jié)碼文件。在這個(gè)時(shí)期,人們使用最多的 Java API 無疑地就是 AWT,因?yàn)?JDK 1.0 時(shí)只有 AWT 稱得上是一組完整的 framework,其它 Java API 都比較偏向個(gè)別的 class。
緊跟著,Sun公司在1997年2月18日發(fā)布了JDK 1.1。JDK 1.1相對(duì)于舊版本最大的改進(jìn),是推出了JIT(Just-In-Time)編譯器。傳統(tǒng)的JVM收到一道字節(jié)碼指令后,解釋成機(jī)器碼,馬上執(zhí)行該機(jī)器碼,然后丟掉該機(jī)器碼,再接收下一道字節(jié)碼指令……即便是以前執(zhí)行過的字節(jié)碼指令,依然需要重新解釋成機(jī)器碼才能執(zhí)行。而JIT編譯器會(huì)把常執(zhí)行的部分先解釋好放在內(nèi)存,以后再次執(zhí)行該指令時(shí),不用再解釋,直接從內(nèi)存中取出機(jī)器碼就可以執(zhí)行了,這樣提高了不少的效率。
在JDK 1.1時(shí)代,Java平臺(tái)分為PersonalJava與EmbeddedJava,前者比較適用于運(yùn)算資源和內(nèi)存豐富的設(shè)備,而資源有限者適用于后者。這樣的分類明顯不符合時(shí)代發(fā)展的潮流,所以,Java平臺(tái)處處蘊(yùn)藏著新的翻天覆地的革命……
【編輯推薦】