Java,是一種可以撰寫跨平台應用軟件的面向對象的程序設計語言,由升陽(Sun Microsystems)公司的詹姆斯·高斯林(James Gosling)等人於1990年代初開發。它最初被 命名為Oak,目標設定在家用電器等小型系統的編程語言,來解決諸如電視機、電話、鬧鐘、 烤面包機等家用電器的控制和通訊問題。由於這些智能化家電的市場需求沒有預期的高,Sun 放棄了該項計劃。就在Oak幾近失敗之時,隨著互聯網的發展,Sun看到了Oak在計算機網絡上 的廣闊應用前景,於是改造了Oak,在1995年5月以“Java”的名稱正式發布了。Java伴隨著 互聯網的迅猛發展而發展,逐漸成為重要的網絡編程語言。
Java 編程語言的風格十分接近C++語言。繼承了 C++ 語言面向對象技術的核心,Java捨 棄了C++語言中容易引起錯誤的指針(以引用取代)、運算符重載(operator overloading) 、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用於回收不再被引用的對象所占 據的內存空間。在 Java SE 1.5 版本中Java又引入了泛型編程(Generic Programming)、 類型安全的枚舉、不定長參數和自動裝/拆箱等語言特性。
Java不同於一般的編譯執行計算機語言和解釋執行計算機語言。它首先將源代碼編譯成字 節碼(bytecode),然後依賴各種不同平台上的虛擬機來解釋執行字節碼,從而實現了“一次 編譯、到處執行”的跨平台特性。不過,這同時也在一定程度上降低了 Java 程序的運行效 率。但在J2SE1.4.2發布後,Java的執行速度有了大幅提升。
與傳統程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術。全球數以萬計 的 Java 開發公司被要求所設計的 Java 軟件必須相互兼容。“Java 語言靠群體的力量而非 公司的力量”是 Sun 公司的口號之一,並獲得了廣大軟件開發商的認同。這與微軟公司所倡 導的注重精英和封閉式的模式完全不同。
Sun公司對Java編程語言的解釋是:Java編程語言是個簡單、面向對象、分布式、解釋性 、健壯、安全與系統無關、可移植、高性能、多線程和動態的語言。
Java平台是基於Java語言的平台。這樣的平台目前非常流行,因此微軟公司推出了與之競 爭的.NET平台以及模仿Java的C#語言。
早期的Java
Java平台和語言最開始只是太陽微系統(Sun MicroSystems)公司在1990年12月開始研究的 一個內部項目。升陽公司的一個叫做帕特裡克·諾頓的工程師被升陽自己開發的C++和C語言 編譯器搞得焦頭爛額,因為其中的API極其難用。帕特裡克決定改用NeXT,同時他也獲得了研 究公司的一個叫做“Stealth 計劃”的項目的機會。
“Stealth 計劃”後來改名為“Green計劃”,詹姆斯·高斯林和麥克·捨林丹也加入了 帕特裡克的工作小組。他們和其他幾個工程師一起在加利福尼亞州門羅帕克市沙丘路的一個 小工作室裡面研究開發新技術,瞄准下一代智能家電(如微波爐)的程序設計,升陽公司預 料未來科技將在家用電器領域大顯身手。團隊最初考慮使用C++語言,但是很多成員包括升陽 的首席科學家比爾·喬伊,發現C++和可用的API在某些方面存在很大問題。
工作小組使用的是內嵌類型平台,可以用的資源極其有限。很多成員發現C++太復雜以至 很多開發者經常錯誤使用。他們發現C++缺少垃圾回收系統,還有可移植的安全性、分布程序 設計、和多線程功能。最後,他們想要一種易於移植到各種設備上的平台。
根據可用的資金,比爾·喬伊決定開發一種集C語言和Mesa語言大成的新語言,在一份報 告上,喬伊把它叫做“未來”,他提議升陽公司的工程師應該在C++的基礎上,開發一種面向 對象的環境。最初,高斯林試圖修改和擴展C++的功能,他自己稱這種新語言為 C++ ++ --, 但是後來他放棄了。他將要創造出一種全新的語言,被他命名為“Oak”(橡樹),以他的辦 公室外的樹而命名。
就像很多開發新技術的秘密的工程一樣,工作小組沒日沒夜地工作到了1992年的夏天,他 們能夠演示新平台的一部分了,包括Green操作系統,Oak的程序設計語言,類庫,和其硬件 。最初的嘗試是面向一種類PDA設備,被命名為Star7,這種設備有鮮艷的圖形界面和被稱為 “Duke”的智能代理來幫助用戶。1992年12月3日,這台設備進行了展示。
同年11月,Green計劃被轉化成了“FirstPerson有限公司”,一個升陽公司的全資子公司 ,團隊也被重新安排到了帕洛阿爾托。FirstPerson團隊對建造一種高度互動的設備感興趣, 當時代華納發布了一個關於電視機頂盒的征求提議書時(Request for proposal), FirstPerson改變了他們的目標,作為對征求意見書的響應, 提出了一個機頂盒平台的提議 。但是有線電視業界覺得FirstPerson的平台給予用戶過多地控制權,因此FirstPerson的投 標敗給了SGI。與3DO 公司的另外一筆關於機頂盒的交易也沒有成功,由於他們的平台不能在 電視工業產生任何效益,公司再並回升陽公司。
Java和互聯網
1994年6月、7月間,在經歷了一場歷時三天的腦力激蕩的討論後,約翰·蓋吉、詹姆斯· 高斯林、比爾·喬伊、帕特裡克·諾頓、韋恩·羅斯因和埃裡克·斯庫米,團隊決定再一次 改變了努力的目標,這次他們決定將該技術應用於萬維網。他們認為隨著Mosaic浏覽器的到 來,因特網正在向同樣的高度互動的遠景演變,而這一遠景正是他們在有線電視網中看到的 。作為原型,帕特裡克·諾頓寫了一個小型萬維網浏覽器,WebRunner,後來改名為HotJava 。
Java和“Java”
同年,Oak改名為Java。商標搜索顯示,Oak已被一家顯卡制造商注冊,話,分別為CA FE BA BE, 就會單詞“CAFE BABE”(咖啡寶貝)。
Java和浏覽器
1994年10月,HotJava和Java平台為公司高層進行演示。1994年,Java 1.0a版本已經可以 提供下載,但是Java和HotJava浏覽器的第一次公開發布卻是在1995年3月23日SunWorld大會 上進行的。升陽公司的科學指導約翰·蓋吉宣告Java技術。這個發布是與網景公司的執行副 總裁馬克·安德森的驚人發布一起進行的,宣布網景將在其浏覽器中包含對Java的支持。 1996年1月,升陽公司成立了Java業務集團,專門開發Java技術。
Java近況
在流行幾年之後,Java在浏覽器中的地位被逐步侵蝕。它在簡單交互性動畫方面的用途已 經完全被Adobe公司的Flash排擠,2005年Java傾向只被用於雅虎游戲那樣的更為復雜的應用 程序。Java同時遭受到來自微軟的反對,他們決定在新版本的Internet Explorer和Windows 中不再附帶Java平台。
與此相反。在萬維網的服務器端和手持設備上,Java變得更加流行。很多網站在前端使用 JSP和其他的Java技術。
在桌面系統上,獨立的Java程序還是相對少見,這是因為Java平台的運行開銷較大,而許 多人的電腦上沒有安裝Java,由於網絡帶寬在以前較小,下載Java曾經是個耗時的事情。但 是隨著計算機計算能力、網絡帶寬在10年中取得了很大的進步,同時虛擬機和編譯器的質量 得到了提高,許多應用程序得到了廣泛的使用,包括:
開源軟件:
NetBeans 和 Eclipse等軟件開發工具
JEdit
Azureus BitTorrent客戶端。
JNode操作系統
Apache軟件基金會的Ant、Derby 、Hadoop、Jakarta、POI 和 Tomcat
JBoss 和 GlassFish應用服務器
閉源軟件:
EIOffice(永中Office)
純Java 3D游戲合金戰士Chrome
IBM Websphere 、 ColdFusion 和 WebLogic
還有許多用Java寫的軟件,可以在 http://www.java.com 找到。在以下網頁可以看到非 常多用Java寫的程序: http://java.sun.com/products/ 下面有大量用Java Swing開發的桌 面Java程序 http://java.sun.com/products/jfc/tsc/sightings/ 目前Java提供以下三個版 本:
Java Platform, Enterprise Edition (Java EE:Java平台企業版)
Java Platform, Standard Edition (Java SE:Java平台標准版)
Java Platform, Micro Edition (Java ME:Java平台微型版)
Java開放源代碼項目
2006年太陽在JavaOne公布Java 開放源代碼項目,並推出OpenJDK計劃。[2] Java虛擬機 、Java編譯器和Java類庫以GNU通用公共許可證公開。
版本歷史(時間表)
從Java 2開始出現的,Java互聯網啟動中心
1995年5月23日,Java語言誕生
1996年1月,第一個JDK-JDK1.0誕生
1996年4月,10個最主要的操作系統供應商申明將在其產品中嵌入JAVA技術
1996年9月,約8.3萬個網頁應用了JAVA技術來制作
1997年2月18日,JDK1.1發布
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創當時全球同類會議規模之紀錄
1997年9月,JavaDeveloperConnection社區成員超過十萬
1998年2月,JDK1.1被下載超過2,000,000次
1998年12月8日,JAVA2企業平台J2EE發布
1999年6月,SUN公司發布Java的三個版本:標准版(J2SE)、企業版(J2EE)和微型版( J2ME)
2000年5月8日,JDK1.3發布
2000年5月29日,JDK1.4發布
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機
2001年9月24日,J2EE1.3發布
2002年2月26日,J2SE1.4發布,自此Java的計算能力有了大幅提升
2004年9月30日18:00PM,J2SE1.5發布,成為Java語言發展史上的又一裡程碑。為了表示 該版本的重要性,J2SE1.5更名為Java SE 5.0
2005年6月,JavaOne大會召開,SUN公司公開Java SE 6。此時,Java的各種版本已經更名 ,以取消其中的數字“2”:J2EE更名為Java EE,J2SE更名為Java SE,J2ME更名為Java ME
2006年12月,SUN公司發布JRE6.0