Java是一種可以撰寫跨平臺(tái)應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和
Java平臺(tái)
(即JavaSE, JavaEE, JavaME)的總稱。Java 技術(shù)具有卓越的通用性、高效性、平臺(tái)移植性和安全性,廣泛應(yīng)用于個(gè)人PC、數(shù)據(jù)中心、游戲控制臺(tái)、科學(xué)超級(jí)計(jì)算機(jī)、移動(dòng)電話和互聯(lián)網(wǎng),同時(shí)擁有全球最大的開發(fā)者專業(yè)社群。在全球云計(jì)算和移動(dòng)互聯(lián)網(wǎng)的產(chǎn)業(yè)環(huán)境下,Java更具備了顯著優(yōu)勢(shì)和廣闊前景。
什么是JAVA
JAVA簡(jiǎn)介
它最初被命名為Oak,目標(biāo)設(shè)定在家用電器等小型系統(tǒng)的編程語言,來解決諸如電視機(jī)、電話、鬧鐘、烤面包機(jī)等家用電器的控制和通訊問題。由于這些智能化家電的市場(chǎng)需求沒有預(yù)期的高,Sun放棄了該項(xiàng)計(jì)劃。就在Oak幾近失敗之時(shí),隨著互聯(lián)網(wǎng)的發(fā)展,Sun看到了Oak在計(jì)算機(jī)網(wǎng)絡(luò)上的廣闊應(yīng)用前景,于是改造了Oak,以“Java”的名稱正式發(fā)布。
JAVA
Java
編程語言
的風(fēng)格十分接近
C
、
C++
語言。Java是一個(gè)純的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,它繼承了 C++ 語言面向?qū)ο蠹夹g(shù)的核心,Java舍棄了C ++語言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。在 Java SE 1.5 版本中,Java 又引入了泛型編程(Generic Programming)、類型安全的
枚舉
、不定長(zhǎng)參數(shù)和自動(dòng)裝/拆箱等語言特性。
Java 不同于一般的編譯執(zhí)行計(jì)算機(jī)語言和解釋執(zhí)行計(jì)算機(jī)語言。它首先將源代碼編譯成二進(jìn)制字節(jié)碼(bytecode),然后依賴各種不同平臺(tái)上的虛擬機(jī)來解釋執(zhí)行字節(jié)碼,從而實(shí)現(xiàn)了“一次編譯、到處執(zhí)行”的跨平臺(tái)特性。不過,每次的編譯執(zhí)行需要消耗一定的時(shí)間,這同時(shí)也在一定程度上降低了 Java 程序的運(yùn)行效率。但在 J2SE 1.4.2 發(fā)布后,Java 的執(zhí)行速度有了大幅提升。
與傳統(tǒng)程序不同,Sun 公司在推出 Java 之際就將其作為一種開放的技術(shù)。全球數(shù)以萬計(jì)的 Java 開發(fā)公司被要求所設(shè)計(jì)的 Java 軟件必須相互兼容。“Java 語言靠群體的力量而非公司的力量”是 Sun 公司的口號(hào)之一,并獲得了廣大軟件開發(fā)商的認(rèn)同。這與
微軟公司
所倡導(dǎo)的注重精英和封閉式的模式完全不同。
Sun 公司對(duì) Java 編程語言的解釋是:Java 編程語言是個(gè)簡(jiǎn)單、面向?qū)ο蟆⒎植际健⒔忉屝浴⒔选踩c系統(tǒng)無關(guān)、可移植、高性能、多線程和動(dòng)態(tài)的語言。
Java 平臺(tái)是基于 Java 語言的平臺(tái)。這樣的平臺(tái)目前非常流行,因此微軟公司推出了與之競(jìng)爭(zhēng)的
.NET
平臺(tái)以及模仿 Java 的
C#
語言。
名字起源
Java的名字的來源:Java是印度尼西亞
爪哇島
的英文名稱,因盛產(chǎn)咖啡而聞名。
Java語言
中的許多庫類名稱,多與咖啡有關(guān),如JavaBeans(咖啡豆)、NetBeans(網(wǎng)絡(luò)豆)以及ObjectBeans (
對(duì)象
豆)等等。SUN和JAVA的標(biāo)識(shí)也正是一杯正冒著熱氣的咖啡。
據(jù)James Gosling(詹姆斯·高斯林)回憶,最初這個(gè)為TV機(jī)頂盒所設(shè)計(jì)的語言在Sun內(nèi)部一直稱為Green項(xiàng)目。我們的新語言需要一個(gè)名字。Gosling(高斯林)注意到自己辦公室外一棵茂密的橡樹Oak,這是一種在硅谷很常見的樹。所以他將這個(gè)新語言命名為Oak。但Oak是另外一個(gè)注冊(cè)公司的名字。這個(gè)名字不可能再用了。在命名征集會(huì)上,大家提出了很多名字。最后按大家的評(píng)選次序,將十幾個(gè)名字排列成表,上報(bào)給商標(biāo)律師。排在第一位的是Silk(絲綢)。盡管大家都喜歡這個(gè)名字,但遭到James Gosling的堅(jiān)決反對(duì)。排在第二和第三的都沒有通過律師這一關(guān)。只有排在第四位的名字、得到了所有人的認(rèn)可和律師的通過,這個(gè)名字就是Java。10多年來,Java就像
爪哇咖啡
一樣譽(yù)滿全球,成為實(shí)至名歸的企業(yè)級(jí)應(yīng)用平臺(tái)的霸主。
早期Java
JAVA的來源
Java平臺(tái)和語言最開始只是SUN公司在1990年12開始研究的一個(gè)內(nèi)部項(xiàng)目。SUN公司的一個(gè)叫做帕特里克·諾頓的工程師被升陽自己開發(fā)的C 和C語言
編譯器
搞得焦頭爛額,因?yàn)槠渲械腁PI極其難用。帕特里克決定改用NeXT,同時(shí)他也獲得了研究公司的一個(gè)叫做“Stealth 計(jì)劃”的項(xiàng)目的機(jī)會(huì)。
“Stealth 計(jì)劃”后來改名為“Green計(jì)劃”,James Gosling(詹姆斯·高斯林)和麥克·舍
林丹
也加入了帕特里克的工作小組。他們和其他幾個(gè)工程師一起在加利福尼亞州門羅
帕克
市沙丘路的一個(gè)小工作室里面研究開發(fā)新技術(shù),瞄準(zhǔn)下一代
智能家電
(如微波爐)的
程序設(shè)計(jì)
,SUN公司預(yù)料未來科技將在家用電器領(lǐng)域大顯身手。團(tuán)隊(duì)最初考慮使用C 語言,但是很多成員包括升陽的首席科學(xué)家比爾·喬伊,發(fā)現(xiàn)C 和可用的API在某些方面存在很大問題。
工作小組使用的是內(nèi)嵌類型平臺(tái),可以用的資源極其有限。很多成員發(fā)現(xiàn)C 太復(fù)雜以至很多開發(fā)者經(jīng)常錯(cuò)誤使用。他們發(fā)現(xiàn)C 缺少垃圾回收系統(tǒng),還有可移植的安全性、分布程序設(shè)計(jì)、和多線程功能。最后,他們想要一種易于移植到各種設(shè)備上的平臺(tái)。
根據(jù)可用的資金,比爾·喬伊決定開發(fā)一種集C語言和Mesa語言大成的新語言,在一份報(bào)告上,喬伊把它叫做“未來”,他提議SUN公司的工程師應(yīng)該在C 的基礎(chǔ)上,開發(fā)一種
面向?qū)ο?
的環(huán)境。最初,高斯林試圖修改和擴(kuò)展C 的功能,他自己稱這種新語言為C --,但是后來他放棄了。他將要?jiǎng)?chuàng)造出一種全新的語言,被他命名為“Oak”(橡樹),以他的辦公室外的樹而命名。
就像很多開發(fā)新技術(shù)的秘密的工程一樣,工作小組沒日沒夜地工作到了1992年的夏天,他們能夠演示新平臺(tái)的一部分了,包括Green操作系統(tǒng),Oak的
程序設(shè)計(jì)語言
,類庫,和其硬件。最初的嘗試是面向一種類PDA設(shè)備,被命名為Star7,這種設(shè)備有鮮艷的圖形界面和被稱為“Duke”的智能代理來幫助用戶。1992年12月3日,這臺(tái)設(shè)備進(jìn)行了展示。
同年11月,Green計(jì)劃被轉(zhuǎn)化成了“FirstPerson有限公司”,一個(gè)SUN公司的全資子公司,團(tuán)隊(duì)也被重新安排到了帕洛
阿爾托
。FirstPerson團(tuán)隊(duì)對(duì)建造一種高度互動(dòng)的設(shè)備感興趣,當(dāng)時(shí)代華納發(fā)布了一個(gè)關(guān)于電視機(jī)頂盒的征求提議書時(shí)(Request for proposal),F(xiàn)irstPerson改變了他們的目標(biāo),作為對(duì)征求意見書的響應(yīng),提出了一個(gè)機(jī)頂盒平臺(tái)的提議。但是有線電視業(yè)界覺得FirstPerson的平臺(tái)給予用戶過多地控制權(quán),因此FirstPerson的投標(biāo)敗給了SGI。與3DO 公司的另外一筆關(guān)于機(jī)頂盒的交易也沒有成功,由于他們的平臺(tái)不能在電視工業(yè)產(chǎn)生任何效益,公司再并回SUN公司
java