Java編程發(fā)展歷史(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
Java的由來
Java語言的誕生具有一定的戲劇性,它并不是經(jīng)過精心策劃、制作、最后殘生的劃時(shí)代產(chǎn)品,從某個(gè)角度來說,Java語言的誕生完全是一種誤會(huì),美麗的誤會(huì)。
1990年年末,Sun公司預(yù)科嵌入式系統(tǒng)將在未來家用電器領(lǐng)域大顯身手,于是Sun公司成立了一個(gè)由James Gosling(后來被稱為Java之父)領(lǐng)導(dǎo)的“Creen計(jì)劃”,準(zhǔn)備為下一代智能家電(如電視機(jī),微波爐,電話)編寫一個(gè)通用控制系統(tǒng)。
該團(tuán)隊(duì)最初考慮使用C++語言,但是很多成員包括Sun的首席科學(xué)家Bill Joy,發(fā)現(xiàn)C++和可用的API在某些方面存在很大問題,而且工作小組使用的是嵌入式平臺(tái),可用在系統(tǒng)資源極其有限,并且很多成員都發(fā)現(xiàn)C++太復(fù)雜,以至很多開發(fā)者經(jīng)常錯(cuò)誤使用,而且C++缺少垃圾回收系統(tǒng),可移植性,分布式和多線程等功能。
根據(jù)可用的資金,Bill Joy決定開發(fā)一種新語言,他提議在C++的基礎(chǔ)上,開發(fā)一種面向?qū)ο蟮沫h(huán)境,于是,Gosling視圖通過修改和擴(kuò)展C++的功能來滿足這個(gè)要求,但是后來他放棄了,他決定創(chuàng)造一種全新的語言:oak, 這個(gè)就是Java的前身。
到了1992年的夏天,Green計(jì)劃已經(jīng)完成了新的平臺(tái)的部分功能,包括Green操作系統(tǒng),Oak的程序設(shè)計(jì)語言,類庫等,同年11月,Green計(jì)劃被轉(zhuǎn)化成“FirstPerson有限公司”,一個(gè)Sun公司的全資子公司。
FirstPerson團(tuán)隊(duì)致力于創(chuàng)建一種高度互動(dòng)的設(shè)備,當(dāng)時(shí)代華納公司發(fā)布了一個(gè)關(guān)于電視機(jī)頂盒的征求提議書時(shí), FirstPerson改變了他們的目標(biāo),作為對(duì)征求提議書的響應(yīng),提出了一個(gè)機(jī)頂盒平臺(tái)的提議。但有限電視業(yè)界覺得 FirstPerson的平臺(tái)給予用戶過多的控制權(quán),因此 FirstPerson的投標(biāo)敗給了SGI,同時(shí),在3DO公司的另外一筆關(guān)于機(jī)頂盒的交易也沒有成功,因此,可憐的Green項(xiàng)目幾乎接近夭折,甚至Green項(xiàng)目組的一半成員也被調(diào)到其他項(xiàng)目組。
oak正式更名為Java
1994年夏天,互聯(lián)網(wǎng)和游覽器的出現(xiàn)不僅給廣大互聯(lián)網(wǎng)的用戶帶來了福音,也給Oak語言帶來了新的生機(jī),James Gosling立即意識(shí)到,這是一個(gè)機(jī)會(huì),于是對(duì)Oak進(jìn)行小規(guī)模的改造,到了1994年秋,小組中的Naughton和Jonathan Payne 完成了第一個(gè)Java語言的網(wǎng)頁游覽器:WebRunner。Sun公司實(shí)驗(yàn)室主任Bert Sutherland和技術(shù)總監(jiān)Eric Schmidt觀看了該游覽器的演示,對(duì)該游覽器的效果給予了高度的評(píng)價(jià),當(dāng)時(shí)Oak這個(gè)商標(biāo)已經(jīng)被別人注冊(cè),于是只的將Oak更名為Java。
Sun公司在1995年年初發(fā)布了Java語言,Sun公司直接把Java放到互聯(lián)網(wǎng)上,免費(fèi)給大家使用,甚至連源代碼也不保密,也放在互聯(lián)網(wǎng)上向所有人公開。
幾個(gè)月后,讓所有人都大吃一驚的事情發(fā)生了,Java成了互聯(lián)網(wǎng)上最熱門的寶貝,竟然后10萬多人次訪問了Sun公司的網(wǎng)頁,下載了Java語言,然后,互聯(lián)網(wǎng)上立即就有了數(shù)不清的Java小程序(也就是Applet),演示著各種小動(dòng)畫,小游戲等。
Java語言終于揚(yáng)眉吐氣成為了一種廣為人知的編程語言。
Java的正式推出
1995年,Sun雖然推出了Java,但這只是一種語言,如果想開發(fā)復(fù)炸的應(yīng)用程序,必須要有一個(gè)強(qiáng)大的開發(fā)類庫,因此,Sun在1996年年初發(fā)布了JDK1.0,這個(gè)版本包括兩部分:運(yùn)行環(huán)境(即JRE)和開發(fā)環(huán)境(JDK),運(yùn)行環(huán)境包括核心API,集成API,用戶界面API,發(fā)布,Java虛擬機(jī)(JVM)5個(gè)部分,開發(fā)環(huán)境包括編譯Java程序的編譯器(即javac命令)
接著,Sun公司1997年2月18日發(fā)布JDK1.1,JDK1.1增加了JIT(即時(shí)編譯)編譯器,JIT和傳統(tǒng)的編譯器不同,傳統(tǒng)的編譯器是編譯一條,運(yùn)行完后將其扔掉,而JIT會(huì)將經(jīng)常的指令保存在內(nèi)存中,下次調(diào)用時(shí)就不需要重新編譯了,通過這種方式讓JDK在效率上有了很大的提高。
- n1996年年底,F(xiàn)lash面世了,這個(gè)更加簡單的動(dòng)畫設(shè)計(jì)軟件,吞噬了Java在網(wǎng)頁上的應(yīng)用。
- n1998年12月,Sun公司發(fā)布Java歷史上最重要的JDK版本,JDK1.2,伴隨JDK1.2一同發(fā)布的還有JSP/Servlet,ELB等規(guī)范,并將Java分成了J2EE,J2SE,j2ME三個(gè)版本:
- J2ME:主要用于控制移動(dòng)設(shè)備和信息家電等有限存儲(chǔ)的設(shè)備。
- J2SE:整個(gè)Java技術(shù)核心和基礎(chǔ),它是J2ME和J2EE編程的基礎(chǔ)。
- J2EE:java技術(shù)中應(yīng)用應(yīng)用最廣泛的部分,
- n2002年2月,Sun發(fā)布了Jdk1.4歷史上最成熟的版本,也出現(xiàn)了大量Java開源框架:Struts,WebWork,Hibernate,Spring。
- n2004年10月,Sun發(fā)布了JDK1.5,同時(shí)將JDK1.5更名為JDK5.0,并增加了新功能。
- n2006年12月,Sun公司發(fā)布了JDK1.6,也稱為JDK6.0。
- n2009年4月20日,Oracle宣布以每股9.5美元的價(jià)格收購Sun公司,該交易的總價(jià)值約為74億美元。
- n2011年7月28日,Oracle公司發(fā)布了JDK7。
- n2014年3月18日,Oracle公司發(fā)布了JDK8。
現(xiàn)在Java已經(jīng)是長久雄踞編程語言排名第一的寶座了。
相關(guān)文章
Guava?Retryer實(shí)現(xiàn)接口重試的示例
本文主要介紹了Guava?Retryer實(shí)現(xiàn)接口重試的示例,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-12-12
Java通過動(dòng)態(tài)代理實(shí)現(xiàn)一個(gè)簡單的攔截器操作
這篇文章主要介紹了Java通過動(dòng)態(tài)代理實(shí)現(xiàn)一個(gè)簡單的攔截器操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java通過MySQL的加解密函數(shù)實(shí)現(xiàn)敏感字段存儲(chǔ)
這篇文章主要介紹了如何在Java中MySQL的加解密函數(shù)實(shí)現(xiàn)敏感字段存儲(chǔ),文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-03-03
Java中的BaseTypeHandler自定義類型轉(zhuǎn)換器的使用
這篇文章主要介紹了Java中的BaseTypeHandler自定義類型轉(zhuǎn)換器的使用,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05
如何使用 Spring Boot 和 Canal 實(shí)現(xiàn) My
本文介紹了如何使用SpringBoot和Canal實(shí)現(xiàn)MySQL數(shù)據(jù)庫之間的數(shù)據(jù)同步,通過配置主庫、創(chuàng)建Canal用戶、配置CanalServer以及開發(fā)SpringBoot客戶端,實(shí)現(xiàn)了將主庫的數(shù)據(jù)實(shí)時(shí)同步到多個(gè)從庫,感興趣的朋友跟隨小編一起看看吧2025-02-02
SpringBoot如何統(tǒng)一處理返回結(jié)果和異常情況
這篇文章主要介紹了SpringBoot如何統(tǒng)一處理返回結(jié)果和異常情況問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-05-05
SpringBoot處理全局統(tǒng)一異常的實(shí)現(xiàn)
這篇文章主要介紹了SpringBoot處理全局統(tǒng)一異常的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
解決Intellij IDEA運(yùn)行報(bào)Command line is too long的問題
這篇文章主要介紹了解決Intellij IDEA運(yùn)行報(bào)Command line is too long的問題,本文通過兩種方案給大家詳細(xì)介紹,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-05-05

