- Java程序設(shè)計與實踐教程(第2版)
- 楊麗萍 王薇 張焱焱主編 北京云班科技有限公司副主編
- 2739字
- 2019-07-01 11:10:44
1.1 Java語言簡介
Java是由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺的總稱。目前Sun公司已被美國數(shù)據(jù)軟件巨頭甲骨文(Oracle)公司收購。
Java的名字來源于印度尼西亞爪哇島的英文名稱,這個小島因盛產(chǎn)咖啡而聞名。Java語言中的許多庫類名稱都與咖啡有關(guān),如JavaBeans(咖啡豆)、NetBeans(網(wǎng)絡(luò)豆)及ObjectBeans(對象豆)等。Sun和Java的標識也正是一杯冒著熱氣的咖啡。Java最初是為TV機頂盒設(shè)計的新語言,在Sun內(nèi)部一直稱之為Green項目。為了給這個新語言起個名字,Gosling注意到自己辦公室外有一棵茂密的橡樹(Oak),這是一種在硅谷很常見的樹。所以他將這個新語言命名為Oak。但Oak是另外一個注冊公司的名字,這個名字不可能再用了。在命名征集會上,大家提出了很多名字,最后按大家的評選次序,將十幾個名字排列成表,上報給商標律師。排在第一位的是Silk(絲綢)。盡管大家都喜歡這個名字,但遭到James Gosling的堅決反對。排在第二和第三的都沒有通過律師這一關(guān)。只有排在第四位的名字得到了所有人的認可和律師的通過,這個名字就是Java。
十多年來,Java就像爪哇咖啡一樣譽滿全球,成為名至實歸的企業(yè)級應(yīng)用平臺的霸主。而Java語言也如同咖啡一般醇香動人。目前,Java語言仍然是世界上最受歡迎的編程語言之一,而且是一種面向?qū)ο蟮母呒壘幊陶Z言。
1.1.1 Java語言發(fā)展歷史
Java語言最早誕生于1991年,來自于Sun(全稱為Stanford University Network,1982年成立)公司的一個叫Green的項目。
到2009年年中,Java已經(jīng)發(fā)布了一系列的版本,以下列出其中比較重要的Java歷史事件。
1995年5月23日,發(fā)布了Java語言。
1996年1月,第一個JDK——JDK1.0誕生。
1996年4月,10個最主要的操作系統(tǒng)供應(yīng)商聲明將在其產(chǎn)品中嵌入Java技術(shù)。
1996年9月,約8.3萬個網(wǎng)頁應(yīng)用了Java技術(shù)來制作。
1997年2月18日,JDK1.1發(fā)布。
1997年4月2日,JavaOne會議召開,參與者逾一萬人,創(chuàng)當時全球同類會議規(guī)模之紀錄。
1997年9月,Java Developer Connection社區(qū)成員超過十萬。
1998年2月,JDK1.1被下載超過2000000次。
1998年12月8日,Java2企業(yè)平臺J2EE發(fā)布。
1999年6月,Sun公司發(fā)布了Java的3個版本:標準版(J2SE)、企業(yè)版(J2EE)和微型版(J2ME)。
2000年5月8日,JDK1.3發(fā)布。
2000年5月29日,JDK1.4發(fā)布。
2001年6月5日,NOKIA宣布,到2003年將出售1億部支持Java的手機。
2001年9月24日,J2EE1.3發(fā)布。
2002年2月26日,J2SE1.4發(fā)布,自此,Java的計算能力有了大幅提升。
2004年9月30日,J2SE1.5發(fā)布,成為Java語言發(fā)展史上的又一里程碑。為了表示該版本的重要性,J2SE 1.5更名為Java SE 5.0。
2005年6月,JavaOne大會召開,Sun公司公開Java SE 6。此時,Java的各種版本已經(jīng)更名,取消其中的數(shù)字2:J2EE更名為Java EE, J2SE更名為Java SE, J2ME更名為Java ME。
2006年11月13日,Sun公司宣布將Java技術(shù)作為免費軟件對外發(fā)布。
2006年12月11日,JDK 1.6發(fā)布,工程代號為Mustang(野馬)。至此,Sun公司終結(jié)了從JDK 1.2開始已經(jīng)有8年歷史的J2EE、J2SE、J2ME的命名方式,啟用Java SE、Java EE、Java ME的命名方式。
2009年2月19日,工程代號為Dolphin(海豚)的JDK 1.7完成了第一個里程碑版本。
2009年4月20日,Oracle公司正式宣布以74億美元的價格收購Sun公司,Java商標從此正式歸Oracle公司所有。
目前在官方網(wǎng)站https://www.oracle.com/technetwork/java/javase/downloads/index.html上可以下載的JDK最新版本為Java Platform (JDK) 11。
1.1.2 Java語言特點
Java是一種簡單的、面向?qū)ο蟮摹⒎植际降摹⒔忉屝偷摹⒔寻踩摹⒔Y(jié)構(gòu)中立的、可移植的、性能優(yōu)異、多線程的動態(tài)語言。Java語言作為一種廣泛使用的程序設(shè)計語言,具有以下特性。
(1)Java語言是簡單的。一方面,Java語言的語法與C語言和C++語言很接近,這使得大多數(shù)程序員很容易學(xué)習和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的特性,如操作符重載、多繼承、自動的強制類型轉(zhuǎn)換。特別地,Java語言不使用指針,并提供了自動的內(nèi)存收集,使得程序員不必為內(nèi)存管理而擔憂。
(2)Java語言是面向?qū)ο蟮摹ava語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,并支持類與接口之間的實現(xiàn)機制(關(guān)鍵字為implements)。Java語言全面支持動態(tài)綁定,是一個純面向?qū)ο蟮某绦蛟O(shè)計語言。
(3)Java語言是分布式的。Java語言支持Internet應(yīng)用的開發(fā),在基本的Java應(yīng)用編程接口中有一個網(wǎng)絡(luò)應(yīng)用編程接口(java.net),它提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法調(diào)用)機制也是開發(fā)分布式應(yīng)用的重要手段。
(4)Java語言是健壯的。Java的強類型機制、異常處理、內(nèi)存空間的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。
(5)Java語言是安全的。Java通常被用在網(wǎng)絡(luò)環(huán)境中,為此,Java提供了一種安全機制以防惡意代碼的攻擊。除了Java語言具有的許多安全特性以外,Java對通過網(wǎng)絡(luò)下載的類具有安全防范機制(類ClassLoader),如分配不同的名字空間以防替代本地的同名類、字節(jié)代碼檢查,并提供安全管理機制(類SecurityManager)讓Java應(yīng)用設(shè)置安全哨兵。
(6)Java語言是體系結(jié)構(gòu)中立的。Java程序(后綴為.java的文件)在Java平臺上被編譯為體系結(jié)構(gòu)中立的字節(jié)碼格式(后綴為.class的文件),然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。這種途徑適合于異構(gòu)的網(wǎng)絡(luò)環(huán)境中軟件的分發(fā)。
(7)Java語言是可移植的。這種可移植性來源于體系結(jié)構(gòu)中立性,另外,Java還嚴格規(guī)定了各個基本數(shù)據(jù)類型的長度,與具體的硬件平臺無關(guān)。Java系統(tǒng)本身也具有很強的可移植性,Java編譯器是用Java實現(xiàn)的,Java的運行環(huán)境是用ANSI C實現(xiàn)的。
(8)Java語言是編譯解釋型的。如前所述,Java程序在Java平臺上被編譯為字節(jié)碼格式,然后可以在實現(xiàn)這個Java平臺的任何系統(tǒng)中運行。在運行時,Java平臺中的Java解釋器對這些字節(jié)碼進行解釋執(zhí)行,執(zhí)行過程中需要的類在連接階段被載入到運行環(huán)境中。
(9)Java是高性能的。與那些解釋型的高級腳本語言相比,Java的確是高性能的。事實上,Java的運行速度隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展越來越快。
(10)Java語言是多線程的。在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創(chuàng)建。通常有兩種方法來創(chuàng)建線程:其一,使用Thread(Runnable) 的構(gòu)造方法將一個實現(xiàn)了Runnable接口的對象包裝成一個線程;其二,從Thread類派生出子類并重寫run方法,使用該子類創(chuàng)建的對象即為線程。值得注意的是,Thread類已經(jīng)實現(xiàn)了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執(zhí)行,并提供多線程之間的同步機制(關(guān)鍵字為synchronized)。
(11)Java語言是動態(tài)的。Java語言的設(shè)計目標之一是適應(yīng)動態(tài)變化的環(huán)境。Java程序需要的類能夠動態(tài)地被載入到運行環(huán)境,也可以通過網(wǎng)絡(luò)來載入所需要的類,這也有利于軟件的升級。另外,Java中的類有一個運行時的表示,能進行運行時的類型檢查。
Java語言的優(yōu)良特性使得Java應(yīng)用具有無比的健壯性和可靠性,這也減少了應(yīng)用系統(tǒng)的維護費用。Java對對象技術(shù)的全面支持和Java平臺內(nèi)嵌的API能縮短應(yīng)用系統(tǒng)的開發(fā)時間并降低成本。Java的“編譯一次,到處可運行”的特性使得它能夠提供一個隨處可用的開放結(jié)構(gòu)和在多平臺之間傳遞信息的低成本方式,特別是Java企業(yè)應(yīng)用編程接口(Java Enterprise API)為企業(yè)計算及電子商務(wù)應(yīng)用系統(tǒng)提供了有關(guān)技術(shù)和豐富的類庫。
- Embedded Linux Projects Using Yocto Project Cookbook
- Objective-C Memory Management Essentials
- Java系統(tǒng)分析與架構(gòu)設(shè)計
- MySQL數(shù)據(jù)庫應(yīng)用與管理 第2版
- 無代碼編程:用云表搭建企業(yè)數(shù)字化管理平臺
- 游戲程序設(shè)計教程
- 網(wǎng)店設(shè)計看這本就夠了
- Getting Started with SQL Server 2012 Cube Development
- Mathematica Data Analysis
- Android程序設(shè)計基礎(chǔ)
- Instant Nancy Web Development
- Swift Playgrounds少兒趣編程
- C語言程序設(shè)計
- Building Business Websites with Squarespace 7(Second Edition)
- Python數(shù)據(jù)預(yù)處理技術(shù)與實踐