1.1 java語言的發展簡史

        java語言的誕生具備必定的戲劇性,它並非通過精心策劃、製做,最後產生的劃時代產品,從某個角度耐看,java語言的誕生徹底是一種誤會。
java

        1900年年底,Sun公司預料嵌入式系統將在將來家用電器領域大顯身手。因而Sun公司成立了一個由 James Gosing 領導的「Green 計劃」,準備爲下一代智能家電(如電視機、微波爐、電話)編寫一個通用控制系統。程序員

        該團隊最初考慮使用 C++ 語言,可是不少成員包括Sun的首席科學家 Bill Joy, 發現C++和可用的API在某些方面存在很大的問題。並且工做小組使用的是嵌入式平臺。可用的系統資源極其有限。而且不少成員都發現C++太複雜,以至不少開發者常常錯誤使用。並且C++缺乏垃圾回收系統、可移植性、分佈式和多線程等功能。編程

        根據可用的資金,Bill Joy決定開發一種新的語言,他提議在C++的基礎上,開發一種面向對象的環境。因而,Gosling試圖經過修改和擴展C++的功能來知足這個要求,可是後來他放棄了。他決定創造一種全新的語言:Oak。
小程序

        到了1992年的夏天,Green計劃已經完成了新平臺的部分功能,包括Green操做系統、Oak的程序設計語言、內褲等。同年11月,Green計劃被轉化成「FirstPerson有限公司」,一個Sun公司的全資子公司。
瀏覽器

        FirstPerson團隊致力於建立一種高度互動的設備。當時代華納公司發佈了一個關於電視機頂盒的徵求提議書時,FirstPerson改變咯他們的目標,做爲對徵求提議書的響應,提出了一個機頂盒的提議。但有限電視業界以爲FirstPerson他的平臺給予用戶過多的控制權,所以FirstPerson的投標敗給了SGI。同時,與3DO公司的另一筆關於機頂盒的交易也沒有成功。此時,可憐的Green項目幾乎接近夭折,甚至Green項目組的一半成員也被調到了其餘項目組。
服務器

        正如中國古代的諺語所言:因禍得福,焉知非福?若是Green項目在機頂盒平臺投標成功,也許不會誕生java這門偉大的語言了。
多線程

        1994年夏天,互聯網和瀏覽器的出現不只給廣大互聯網的用戶帶來了福音,也給Oak語言帶來了新的生機。Gosling當即意識到,這是一個機會,因而對Oak進行了小規模的改造,到了1994年秋,小組中的Naunghton和Gonathan Payne 完成了第一個java語言的網頁瀏覽器:WebRunner。Sun公司實驗室主任Bert Sutherland 和技術總監 Eric Schmidt 觀看了該瀏覽器的演示,對該瀏覽器的效果給予了高度評價。當時Oak這個商標已被別人註冊了,因而只得改名java。
框架

        Sun公司在1995年年初發布了java語言,Sun公司直接把java放到互聯網上,免費給你們使用。甚至連源代碼也不保密,也放在互聯網上向全部人公開。
編程語言

        幾個月後,讓全部人都大吃一驚的事情發生了:java成了互聯網上最熱門的寶貝。居然有10萬多人次訪問了Sun公司的網頁,下載了java語言。而後,互聯網上當即就有數不清的java小程序(也就是Applet),掩飾着各類小動畫、小遊戲等。
分佈式

        java語言終於揚眉吐氣了,成爲了一種廣爲人知的編程語言。

        在java語言出現以前,互聯網的網頁實質上就是一張紙,不會有任何動態的內容。有了java語言以後,瀏覽器的功能被擴大了,java程序能夠直接在瀏覽器裏運行,能夠直接與遠程服務器交互;用java語言編程,能夠在互聯網上像傳送電子郵件同樣方便地傳送程序文件!

        1995年,Sun在1997年2月18日發佈了JDK 1.1。JDK 1.1增長了JIT(即時編譯)編譯器。JIT和傳統的編譯器不一樣,傳統的編譯器是編譯一條,運行完成後將其扔掉;而JIT會將常常用到的指令保存在內存中,當下次調用時就不須要從新編譯了,經過這種方式讓JDK在效率上有了較大提高。

        但一直以來,java主要的應用就是網頁上的Applet以及一些移動設備。到了1996年年末,Flash面世了,這是一種更加簡單的動畫設計軟件;使用Flash幾乎無須任何編程語言知識,就能夠作出豐富多彩的動畫。隨後Flash增長了ActionScript編程腳本,Flash逐漸蠶食了java在網頁上的應用。

        從1995年java的誕生到1998年年末,java語言雖然成爲了互聯網上普遍使用的編程語言,但它並無找到一個準確的定位,也沒有找到它必須存在的理由;java語言能夠編寫Applet,而Flash同樣能夠作到,並且更快,開發成本更低。

        直到1998年12月,Sun發佈了java歷史上最重要的JDK版本;JDK 1.2伴隨JDK 1.2一同發佈的還有JSP/Servlet、EJB等規範,並將java分紅咯J2EE、J2SE 和 J2ME 三個版本。

  • J2ME:主要用於控制移動設備和信息家電等郵箱存儲的設備。

  • J2SE:整個java技術的核心和基礎,它是 J2ME 和 J2SE 編程的基礎,也是這本書主要介紹的內容。

  • J2EE:java技術中應用最普遍的部分,J2EE提供了企業應用開發的完整解決方案。

        這標誌着java已經吹響了向企業、桌面和移動3個領域進軍的號角,標誌着java已經進入java 2 時代,這個時期也是java飛速發展的時期。

        在java 2 中,java發生了不少革命性的變化,而這些革命性的變化一直沿用到如今,對java的發展造成了深遠的影響。直到今天,咱們還常常看到 J2EE 、J2ME 等名詞。

        不只如此,JDK 1.2 還把它的API分紅了三大類。

  • 核心API:由Sun公司制定的基本的API,全部的java平臺都應該提供。這就是咱們日常所說的的java核心內褲。

  • 可選API:這是Sun爲JDK提供的擴充API,這些API因平臺的不一樣而不一樣。

  • 特殊API:用於知足特殊的要求的API。如用於JCA 和 JCE的第三方加密類庫。

        2002年2月,sun發佈了jdk歷史上最爲成熟的版本;JDK 1.4.此時因爲Compaq、Fujitsu、SAS、Symbian、IBM等公司的參與,使JDK 1.4 成爲發展最快的一個JDK版本。到JDK 1.4爲止,咱們已經可使用java實現大多數的應用了。

        在此期間,java語言在企業應用領域大放異彩,涌現出大量基於java語言的開源框架;Struts、WebWork、Hibernate、Spring等;大量企業應用服務器也開始涌現:Weblogic、WebSphere、JBoss等,這些都標誌着java語言進入了飛速發展時期。

        2004年10月,Sun發不了萬衆期待的JDK 1.5,同時,Sun將 JDK 1.5 更名爲Java SE 5.0,J2EE、J2ME也相應地更名爲java EE 和 java ME。JDK 1.5 增長了諸如泛型、加強的for語句、可變數量的形參、註釋(Annotations)、自動拆箱和裝箱等功能;同時,也發佈了新的企業級平臺規範,如經過註釋等新特性來說話EJB的複雜性,並推出了EJB 3.0規範。還推出了本身的MVC框架規範;JSF,JSF規範相似於ASP.NET的服務端控件,經過它能夠快速地構建複雜的JSP界面。

        2006年12月,Sun公司發佈了JDK 1.6(也被稱爲Java SE 6)。一直以來,Sun公司維持了大約2年發佈一次JDK新版本的習慣。

        但在2009年4月20日,Oracle宣佈將以每股9.5美圓的價格收購Sun,該交易的總價值約爲74億美圓。而Oracle經過收購Sun公司得到了兩項軟件資產:java和Solaris。

        因而曾經表明一個時代的公司:Sun終於被「雨打風吹」去,「江湖」上再也沒有了Sun的身影。多年以來,在新一輩的程序員心中可能會遺忘曾經的Sun公司,但老一輩的程序員們將永久地懷念Sun公司的傳奇。

        Sun倒下了,不過java的大旗依然「獵獵」做響。2007年11月,Google宣佈突出一款基於Linux平臺的的開源手機操做系統;Android。Android的出現順應了即將出現的移動互聯網潮流,並且Android系統的用戶體驗很是好,所以迅速成爲手機操做系統的中堅力量。Android平臺使用了Dalvik虛擬機來運行 .dex 文件,Dalvik虛擬機的做用相似於JVM虛擬機,只是他並未遵照JVM規範而已。Android使用java語言來開發應用程序,這也給了java語言一個新的機會。在過去的歲月中,java語言做爲服務器端編程語言,已經取得了極大的成功;而Android平臺的流行,則讓Java語言得到了在客戶端程序上大展拳腳的機會。

        2011年7月28日,Oracle公司終於「如約」發不了java SE 7 ——此次版本的升級通過了將近5年時間。java SE 7 也是Oracle 發佈的第一個java版本。java SE 7 雖然並未徹底知足全部人的指望,不過它也加入了很多新特性,本書後面將會詳細介紹這些特性。

相關文章
相關標籤/搜索