Java編程發(fā)展歷史(動(dòng)力節(jié)點(diǎn)Java學(xué)院整理)
Java的由來(lái)
Java語(yǔ)言的誕生具有一定的戲劇性,它并不是經(jīng)過(guò)精心策劃、制作、最后殘生的劃時(shí)代產(chǎn)品,從某個(gè)角度來(lái)說(shuō),Java語(yǔ)言的誕生完全是一種誤會(huì),美麗的誤會(huì)。
1990年年末,Sun公司預(yù)科嵌入式系統(tǒng)將在未來(lái)家用電器領(lǐng)域大顯身手,于是Sun公司成立了一個(gè)由James Gosling(后來(lái)被稱為Java之父)領(lǐng)導(dǎo)的“Creen計(jì)劃”,準(zhǔn)備為下一代智能家電(如電視機(jī),微波爐,電話)編寫一個(gè)通用控制系統(tǒng)。
該團(tuán)隊(duì)最初考慮使用C++語(yǔ)言,但是很多成員包括Sun的首席科學(xué)家Bill Joy,發(fā)現(xiàn)C++和可用的API在某些方面存在很大問(wèn)題,而且工作小組使用的是嵌入式平臺(tái),可用在系統(tǒng)資源極其有限,并且很多成員都發(fā)現(xiàn)C++太復(fù)雜,以至很多開(kāi)發(fā)者經(jīng)常錯(cuò)誤使用,而且C++缺少垃圾回收系統(tǒng),可移植性,分布式和多線程等功能。
根據(jù)可用的資金,Bill Joy決定開(kāi)發(fā)一種新語(yǔ)言,他提議在C++的基礎(chǔ)上,開(kāi)發(fā)一種面向?qū)ο蟮沫h(huán)境,于是,Gosling視圖通過(guò)修改和擴(kuò)展C++的功能來(lái)滿足這個(gè)要求,但是后來(lái)他放棄了,他決定創(chuàng)造一種全新的語(yǔ)言:oak, 這個(gè)就是Java的前身。
到了1992年的夏天,Green計(jì)劃已經(jīng)完成了新的平臺(tái)的部分功能,包括Green操作系統(tǒng),Oak的程序設(shè)計(jì)語(yǔ)言,類庫(kù)等,同年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è)界覺(jué)得 FirstPerson的平臺(tái)給予用戶過(guò)多的控制權(quán),因此 FirstPerson的投標(biāo)敗給了SGI,同時(shí),在3DO公司的另外一筆關(guān)于機(jī)頂盒的交易也沒(méi)有成功,因此,可憐的Green項(xiàng)目幾乎接近夭折,甚至Green項(xiàng)目組的一半成員也被調(diào)到其他項(xiàng)目組。
oak正式更名為Java
1994年夏天,互聯(lián)網(wǎng)和游覽器的出現(xiàn)不僅給廣大互聯(lián)網(wǎng)的用戶帶來(lái)了福音,也給Oak語(yǔ)言帶來(lái)了新的生機(jī),James Gosling立即意識(shí)到,這是一個(gè)機(jī)會(huì),于是對(duì)Oak進(jìn)行小規(guī)模的改造,到了1994年秋,小組中的Naughton和Jonathan Payne 完成了第一個(gè)Java語(yǔ)言的網(wǎng)頁(yè)游覽器: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語(yǔ)言,Sun公司直接把Java放到互聯(lián)網(wǎng)上,免費(fèi)給大家使用,甚至連源代碼也不保密,也放在互聯(lián)網(wǎng)上向所有人公開(kāi)。
幾個(gè)月后,讓所有人都大吃一驚的事情發(fā)生了,Java成了互聯(lián)網(wǎng)上最熱門的寶貝,竟然后10萬(wàn)多人次訪問(wèn)了Sun公司的網(wǎng)頁(yè),下載了Java語(yǔ)言,然后,互聯(lián)網(wǎng)上立即就有了數(shù)不清的Java小程序(也就是Applet),演示著各種小動(dòng)畫,小游戲等。
Java語(yǔ)言終于揚(yáng)眉吐氣成為了一種廣為人知的編程語(yǔ)言。
Java的正式推出
1995年,Sun雖然推出了Java,但這只是一種語(yǔ)言,如果想開(kāi)發(fā)復(fù)炸的應(yīng)用程序,必須要有一個(gè)強(qiáng)大的開(kāi)發(fā)類庫(kù),因此,Sun在1996年年初發(fā)布了JDK1.0,這個(gè)版本包括兩部分:運(yùn)行環(huán)境(即JRE)和開(kāi)發(fā)環(huán)境(JDK),運(yùn)行環(huán)境包括核心API,集成API,用戶界面API,發(fā)布,Java虛擬機(jī)(JVM)5個(gè)部分,開(kāi)發(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í)就不需要重新編譯了,通過(guò)這種方式讓JDK在效率上有了很大的提高。
- n1996年年底,F(xiàn)lash面世了,這個(gè)更加簡(jiǎn)單的動(dòng)畫設(shè)計(jì)軟件,吞噬了Java在網(wǎng)頁(yè)上的應(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開(kāi)源框架: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à)格收購(gòu)Sun公司,該交易的總價(jià)值約為74億美元。
- n2011年7月28日,Oracle公司發(fā)布了JDK7。
- n2014年3月18日,Oracle公司發(fā)布了JDK8。
現(xiàn)在Java已經(jīng)是長(zhǎng)久雄踞編程語(yǔ)言排名第一的寶座了。
相關(guān)文章
Spring Cloud 網(wǎng)關(guān)服務(wù) zuul 動(dòng)態(tài)路由的實(shí)現(xiàn)方法
網(wǎng)關(guān)服務(wù)是流量的唯一入口。不能隨便停服務(wù)。所以動(dòng)態(tài)路由就顯得尤為必要。這篇文章主要介紹了Spring Cloud 網(wǎng)關(guān)服務(wù) zuul 三 動(dòng)態(tài)路由的相關(guān)知識(shí),需要的朋友可以參考下2019-10-10java調(diào)用文心一言API的方法實(shí)現(xiàn)過(guò)程
Java是一種廣泛使用的編程語(yǔ)言,用于開(kāi)發(fā)各種應(yīng)用程序,下面這篇文章主要給大家介紹了關(guān)于java調(diào)用文心一言API的方法實(shí)現(xiàn),文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12java中生成任意之間數(shù)的隨機(jī)數(shù)詳解
這篇文章主要介紹了java中生成任意之間數(shù)的隨機(jī)數(shù)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09如何用JAVA判斷當(dāng)前時(shí)間是否為節(jié)假日、周末、工作日及調(diào)休日(不報(bào)錯(cuò):IOException!)
最近公司有個(gè)業(yè)務(wù)需要判斷工作日,但是每年的節(jié)假日不一樣,下面這篇文章主要給大家介紹了關(guān)于如何用JAVA判斷當(dāng)前時(shí)間是否為節(jié)假日、周末、工作日及調(diào)休日的相關(guān)資料,且不報(bào)錯(cuò):IOException!,需要的朋友可以參考下2023-12-12SpringBoot?注解?@AutoConfiguration?在?2.7?版本中被新增的使用方法詳解
這篇文章主要介紹了SpringBoot?注解?@AutoConfiguration?在?2.7?版本中被新增(使用方法),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2024-09-09關(guān)于java自定義線程池的原理與實(shí)現(xiàn)
本文介紹了如何自定義線程池和阻塞隊(duì)列,包括阻塞隊(duì)列的實(shí)現(xiàn)方法,線程池的構(gòu)建以及拒絕策略的應(yīng)用,詳細(xì)闡述了線程池中任務(wù)的提交和執(zhí)行流程,以及如何處理任務(wù)超出隊(duì)列容量的情況2022-04-04