- Java 開發(fā)從入門到精通(第2版)
- 扶松柏 王洋 陳小玉
- 2367字
- 2020-04-14 15:06:01
1.2 初識(shí)Java
縱觀各大主流招聘媒體,總是會(huì)看到多條招聘Java程序員的廣告。由此可以看出,Java程序員很受市場歡迎。本節(jié)將帶領(lǐng)大家初步認(rèn)識(shí)一下Java這門語言,為讀者隨后步入本書后面知識(shí)的學(xué)習(xí)打下基礎(chǔ)。
知識(shí)點(diǎn)講解:

1.2.1 何謂Java
我們通常所說的Java,指的是Sun公司在1995年5月推出的一套編程架構(gòu),它主要由Java程序設(shè)計(jì)語言(以后簡稱Java語言)和Java運(yùn)行時(shí)環(huán)境兩部分組成。用Java實(shí)現(xiàn)的HotJava瀏覽器(支持Java Applet)向我們展示了Java語言的魅力—跨平臺(tái)、動(dòng)態(tài)Web開發(fā)及Internet計(jì)算。當(dāng)時(shí),人們通過HotJava瀏覽器上運(yùn)行的Java Applet程序,看到了Java是一門具有跨平臺(tái)能力的程序設(shè)計(jì)語言,因而在動(dòng)態(tài)Web開發(fā)及Internet計(jì)算領(lǐng)域有著巨大的潛力。從那以后,Java便被廣大程序員和企業(yè)用戶廣泛接受,成為最受歡迎的編程語言之一。
當(dāng)然,Java程序需要在Java平臺(tái)的支持下運(yùn)行,Java平臺(tái)則主要由Java虛擬機(jī)(Java Virtual Machine,JVM)和Java應(yīng)用編程接口(Application Programming Interface,API)構(gòu)成。我們需要在自己的設(shè)備上安裝Java平臺(tái)之后,才能運(yùn)行Java應(yīng)用程序。關(guān)于這一點(diǎn),讀者倒是不必太擔(dān)心,如今所有操作系統(tǒng)都有相應(yīng)版本的Java平臺(tái),我們只需要按照相關(guān)的指示安裝好它們,然后我們的Java程序只需要編譯一次,可以在各種操作系統(tǒng)中運(yùn)行了。
Java分為如下3個(gè)體系。
? JavaSE:Java2 Platform Standard Edition的縮寫,即Java平臺(tái)標(biāo)準(zhǔn)版,涵蓋Java語言的大多數(shù)功能,本書將以JavaSE平臺(tái)進(jìn)行講解。
? JavaEE:Java 2 Platform Enterprise Edition的縮寫,即Java平臺(tái)企業(yè)版,主要用于開發(fā)企業(yè)級程序。
? JavaME:Java 2 Platform Micro Edition的縮寫,即Java平臺(tái)微型版,主要用于開發(fā)移動(dòng)設(shè)備端的程序。
1.2.2 Java的特點(diǎn)
? 語法簡單:Java語言的語法與C/C++語言十分接近,這樣大多數(shù)程序員可以很容易地學(xué)習(xí)和使用Java。另外,Java還丟棄了C++中很少使用的、很難理解的那些特性,例如操作符重載、多繼承、自動(dòng)強(qiáng)制類型轉(zhuǎn)換等,并且令廣大學(xué)習(xí)者高興的是Java不再使用指針,學(xué)習(xí)者再也不用為指針發(fā)愁了。除此之外,Java還為我們提供了垃圾回收機(jī)制,使得程序員不必再為內(nèi)存管理而擔(dān)憂。
? 支持面向?qū)ο螅篔ava語言支持類、接口和繼承等特性,并且為簡單起見,Java只支持類之間的單繼承和接口之間的多繼承,并且也支持類與接口之間的實(shí)現(xiàn)機(jī)制。總之,Java是一門純粹面向?qū)ο蟮某绦蛟O(shè)計(jì)語言。
? 支持分布式開發(fā):Java語言支持Internet應(yīng)用開發(fā),在基本的Java應(yīng)用編程接口中有一個(gè)網(wǎng)絡(luò)應(yīng)用編程接口(java.net),這個(gè)接口提供了用于網(wǎng)絡(luò)應(yīng)用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的遠(yuǎn)程方法激活(RMI)機(jī)制也是開發(fā)分布式應(yīng)用的重要手段。
? 健壯性:Java的強(qiáng)類型、異常處理、垃圾回收等機(jī)制保證了Java程序的健壯性。另外,Java的安全檢查機(jī)制對保證Java程序的健壯性也有相當(dāng)大的作用。
? 安全性:由于程序員通常需要在網(wǎng)絡(luò)環(huán)境中使用Java語言,因此Java必須為我們提供一套安全機(jī)制以防止程序被惡意代碼攻擊。Java語言除了具有許多安全特性以外,還為從網(wǎng)絡(luò)下載應(yīng)用提供了安全防范機(jī)制(ClassLoader類),例如,通過分配不同的名稱空間可以防止本地類被外來的同名類意外替代。另外,Java的字節(jié)代碼檢查和安全管理機(jī)制(SecurityManager類)在Java應(yīng)用程序中也起到“安全哨兵”的作用。
? 可移植性:相同的程序能夠在不同的開發(fā)環(huán)境與應(yīng)用環(huán)境中使用,不論使用的是微軟的產(chǎn)品還是其他提供商的產(chǎn)品。當(dāng)然,由于Java的運(yùn)行環(huán)境是用ANSI C實(shí)現(xiàn)的,這賦予了Java系統(tǒng)很強(qiáng)的可移植性,使Java程序可以在多種平臺(tái)上運(yùn)行。
? 解釋型語言:Java程序的代碼會(huì)在Java平臺(tái)上被編譯為字節(jié)碼格式,這樣Java程序就可以在安裝了Java平臺(tái)的任何系統(tǒng)中運(yùn)行。在運(yùn)行時(shí),Java平臺(tái)中的Java解釋器對這些字節(jié)碼進(jìn)行解釋,執(zhí)行過程中需要的類會(huì)在連接階段載入到運(yùn)行環(huán)境中。
? 支持多線程:當(dāng)程序需要同時(shí)處理多項(xiàng)任務(wù)時(shí),就需要用到多線程并行開發(fā)。如果一個(gè)程序在同一時(shí)間只能做一件事情,那它的功能也太過于簡單了,肯定無法滿足現(xiàn)實(shí)需求。在實(shí)際應(yīng)用中,多線程條件下的并行開發(fā)是必不可少的,可以讓我們在同一時(shí)間做多件事情,甚至開啟多個(gè)線程,同時(shí)做一件事情,以提高效率。無論是C/C++語言,還是其他程序設(shè)計(jì)語言,線程都是一個(gè)十分重要的概念。
? 高性能:與那些解釋型的高級腳本語言相比,Java的確稱得上高性能。近年來,隨著JIT(Just-In-Time)編譯器技術(shù)的發(fā)展,Java的運(yùn)行速度事實(shí)上已經(jīng)越來越接近于C++了。
? 動(dòng)態(tài):Java語言的設(shè)計(jì)目標(biāo)之一是適應(yīng)動(dòng)態(tài)變化的環(huán)境。Java程序中的類需要能夠動(dòng)態(tài)地載入到運(yùn)行環(huán)境中,也可以通過網(wǎng)絡(luò)來載入所需要的類。動(dòng)態(tài)語言有利于軟件升級。
1.2.3 Java的地位
“TIOBE編程語言社區(qū)排行榜”是眾多編程語言愛好者心目中的權(quán)威榜單。TIOBE榜單每月更新一次,上面的排名客觀公正地展示了各門編程語言的地位。TIOBE排行榜的排名基于互聯(lián)網(wǎng)上有經(jīng)驗(yàn)的程序員、課程和第三方廠商的數(shù)量,TIOBE編程語言社區(qū)排行榜使用著名的搜索引擎(諸如Google、MSN、Yahoo!、Wikipedia、YouTube以及Baidu等)進(jìn)行計(jì)算。都說“長江后浪推前浪,一浪更比一浪強(qiáng)”,但是在編程榜單上,Java和C語言的二人轉(zhuǎn)已經(jīng)表演多年,程序員也早已習(xí)慣C語言和Java的二人轉(zhuǎn)局面。截至2018年9月,Java語言和C語言依然是最大的贏家。表1-1顯示了最近兩年榜單上前兩名編程語言的排名信息。
表1-1 2017~2018年編程語言使用率統(tǒng)計(jì)

由表1-1的統(tǒng)計(jì)數(shù)據(jù)可以看出,最近兩年Java語言一直位居榜首。雖然TIOBE編程語言社區(qū)排行榜只反映某編程語言的熱門程度,并不能說明一門編程語言本身設(shè)計(jì)的優(yōu)劣,或者使用一門編程語言編寫的代碼量的多少,但是這個(gè)排行榜可以考查大家的編程技能是否與時(shí)俱進(jìn),也可以在開發(fā)新系統(tǒng)時(shí)作為語言選擇依據(jù)。Java的功能比較強(qiáng)大,在服務(wù)器端應(yīng)用、移動(dòng)設(shè)備端應(yīng)用、桌面應(yīng)用和Web應(yīng)用的開發(fā)中都占據(jù)重要的地位,所以占據(jù)排行榜榜首是非常正常的。
在現(xiàn)實(shí)應(yīng)用中,Java語言主要應(yīng)用于如下領(lǐng)域。
? 服務(wù)器端應(yīng)用:Java在服務(wù)器端編程方面的表現(xiàn)很出色,擁有很多其他語言所沒有的優(yōu)勢。
? 移動(dòng)端應(yīng)用:Java在手機(jī)等移動(dòng)設(shè)備上的應(yīng)用比較廣泛,如手機(jī)、平板電腦上的Java游戲隨處可見,當(dāng)前異?;鸨腁ndroid系統(tǒng)也支持Java。
? 桌面應(yīng)用:Java和C++、.NET一樣重要,影響著桌面程序的發(fā)展。
? Web應(yīng)用:Java在Web應(yīng)用的開發(fā)上有著巨大的優(yōu)勢,而且Java的大多數(shù)開發(fā)工具和開發(fā)框架都是開源的,具有更強(qiáng)的安全性。
- Redis入門指南(第3版)
- Java入門經(jīng)典(第6版)
- Mastering OpenCV 4
- Oracle數(shù)據(jù)庫從入門到運(yùn)維實(shí)戰(zhàn)
- 精通API架構(gòu):設(shè)計(jì)、運(yùn)維與演進(jìn)
- Java Web應(yīng)用開發(fā)技術(shù)與案例教程(第2版)
- Bootstrap 4:Responsive Web Design
- FLL+WRO樂高機(jī)器人競賽教程:機(jī)械、巡線與PID
- JavaScript:Moving to ES2015
- 信息技術(shù)應(yīng)用基礎(chǔ)
- Mastering ServiceNow(Second Edition)
- SQL經(jīng)典實(shí)例(第2版)
- Python機(jī)器學(xué)習(xí)算法: 原理、實(shí)現(xiàn)與案例
- Unity 2018 Shaders and Effects Cookbook
- Android嵌入式系統(tǒng)程序開發(fā):基于Cortex-A8(第2版)