- Java程序設(shè)計(jì)與開(kāi)發(fā)
- 張曉龍主編
- 1801字
- 2018-12-29 19:13:00
1.2 Java的特點(diǎn)
1.簡(jiǎn)單性
Java是一種簡(jiǎn)單的程序設(shè)計(jì)語(yǔ)言。Java的設(shè)計(jì)者盡量把語(yǔ)言的規(guī)模結(jié)構(gòu)縮小,通過(guò)提供最基本的方法來(lái)完成指定的任務(wù)。程序員只需要理解一些基本概念,就可以編寫出合適的應(yīng)用程序。Java語(yǔ)言還選擇性地繼承了C++語(yǔ)言中的語(yǔ)法規(guī)則和面向?qū)ο蟮幕緳C(jī)制,放棄了C++語(yǔ)言中十分煩瑣和難以理解的內(nèi)容,如指針、運(yùn)算符的重載、類的多重繼承,并增加了垃圾回收功能,極大地簡(jiǎn)化了程序的內(nèi)存管理工作,降低了編程學(xué)習(xí)的難度;同時(shí)Java編譯器很小,便于在各種機(jī)型上實(shí)現(xiàn)。
2.面向?qū)ο?/p>
Java語(yǔ)言是一種純粹的面向?qū)ο缶幊陶Z(yǔ)言,提供類、接口和繼承等方法。Java語(yǔ)言中的所有設(shè)計(jì)集中于對(duì)象及其接口上,它提供了簡(jiǎn)單的類機(jī)制和動(dòng)態(tài)的接口模型。對(duì)象中封裝了變量及方法,實(shí)現(xiàn)了模塊化和信息隱藏;而類提供了對(duì)象的原型。通過(guò)繼承機(jī)制,子類可以使用父類提供的方法,從而實(shí)現(xiàn)了代碼的復(fù)用,并對(duì)不斷變化的需求有很強(qiáng)的適應(yīng)性。
3.對(duì)象性
Java應(yīng)用程序可以通過(guò)URL地址,在訪問(wèn)網(wǎng)絡(luò)上任何位置的對(duì)象時(shí),實(shí)現(xiàn)的效果幾乎與本地訪問(wèn)文件系統(tǒng)相同。Servlet機(jī)制的出現(xiàn),使Java編程效率有了很大提高,并且很多大型Web Server都支持Servlet。利用Java來(lái)進(jìn)行分布式網(wǎng)絡(luò)開(kāi)發(fā)是其主要應(yīng)用之一。
4.健壯性
Java語(yǔ)言提供了嚴(yán)密的語(yǔ)法規(guī)則,在編譯和運(yùn)行時(shí)具有獨(dú)特的檢測(cè)措施,有效地降低了程序出錯(cuò)的可能性。例如,引用一個(gè)非法類型或執(zhí)行一個(gè)非法類型操作,Java將在編譯時(shí)指出相應(yīng)的錯(cuò)誤。
Java語(yǔ)言提供了面向?qū)ο蟮漠惓L幚頇C(jī)制,在編譯時(shí)捕獲未被處理的異常,防止系統(tǒng)崩潰的發(fā)生。Java語(yǔ)言還提供了內(nèi)存管理功能,能夠自動(dòng)跟蹤程序使用的所有資源類型。當(dāng)內(nèi)存資源不再使用時(shí)能夠自動(dòng)回收,無(wú)須用戶程序單獨(dú)進(jìn)行處理,減少了編程人員在內(nèi)存管理上的困惑。
5.安全性
由于Java編譯器輸出的并不是可執(zhí)行文件(*.exe),而是字節(jié)代碼(bytecode),Java的運(yùn)行系統(tǒng)就是Java虛擬機(jī),每個(gè)Java程序的運(yùn)行都是在Java虛擬機(jī)的控制之下。因此,下載安全的Java虛擬機(jī)是對(duì)付病毒入侵和保障程序安全最重要的手段,同時(shí)對(duì)Java程序進(jìn)行解釋執(zhí)行的方式也是保證Java程序安全性的一個(gè)重要原因。Java不支持指針,一切對(duì)內(nèi)存的訪問(wèn)都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止了程序員使用指針等欺騙手段訪問(wèn)對(duì)象的私有成員,同時(shí)也避免了指針操作中容易出現(xiàn)的錯(cuò)誤。此外,在運(yùn)行程序時(shí)有嚴(yán)格的訪問(wèn)權(quán)限檢查。
6.體系結(jié)構(gòu)中立
Java是一門編譯語(yǔ)言,但它不直接生成硬件處理器的指令,而是生成一種與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,這種字節(jié)碼由Java虛擬機(jī)解釋執(zhí)行。只要安裝了Java運(yùn)行時(shí)環(huán)境,Java程序就可以在任意處理器上運(yùn)行。這些字節(jié)碼指令對(duì)應(yīng)于Java虛擬機(jī)中的表示,Java解釋器得到字節(jié)碼指令后,對(duì)它進(jìn)行轉(zhuǎn)換,使之能夠在不同的平臺(tái)上運(yùn)行。
7.移植性
移植性即平臺(tái)無(wú)關(guān)性,是指一個(gè)應(yīng)用程序能夠運(yùn)行在不同的操作系統(tǒng)平臺(tái),也就是Sun公司設(shè)計(jì)Java的宗旨“Write once,Run anywhere”。此外,Java還嚴(yán)格規(guī)定了各個(gè)基本數(shù)據(jù)類型的長(zhǎng)度。平臺(tái)無(wú)關(guān)性使Java應(yīng)用程序可以運(yùn)行在任何操作系統(tǒng)平臺(tái)上,也是區(qū)別于其他高級(jí)語(yǔ)言最重要的標(biāo)志。由于Java虛擬機(jī)支持平臺(tái)無(wú)關(guān)性,不同的操作系統(tǒng)需要與之相符的Java虛擬機(jī)版本。Java提供了可移植的類庫(kù),而且,Java編譯器是用Java語(yǔ)言編寫的,運(yùn)行時(shí)環(huán)境由標(biāo)準(zhǔn)C實(shí)現(xiàn)。因此,Java系統(tǒng)本身也就具有可移植性。
8.解釋性
如前所述,Java運(yùn)行時(shí)環(huán)境可以在任何主機(jī)上將程序代碼編譯為Java字節(jié)碼格式,而字節(jié)碼本身帶有編譯時(shí)產(chǎn)生的信息,使得程序連接過(guò)程更為簡(jiǎn)單。在運(yùn)行Java程序時(shí),由Java解釋器對(duì)這些字節(jié)碼進(jìn)行解釋執(zhí)行,執(zhí)行過(guò)程中所需訪問(wèn)的類被動(dòng)態(tài)載入到運(yùn)行時(shí)環(huán)境中。
9.高效性
由于Java字節(jié)碼格式的設(shè)計(jì)專門針對(duì)機(jī)器碼的轉(zhuǎn)換,自動(dòng)的寄存器分配與編譯器對(duì)字節(jié)碼的一些優(yōu)化能生成高質(zhì)量的代碼。因此,Java程序可以快速地轉(zhuǎn)換成機(jī)器碼,直接執(zhí)行。隨著Java虛擬機(jī)的改進(jìn)和即時(shí)編譯技術(shù)JIT(Just In Time)的出現(xiàn),使得Java的執(zhí)行速度有了很大提高。
10.多線程
Java的特點(diǎn)之一就是內(nèi)置了多線程的類庫(kù)。Java的多線程機(jī)制中,每個(gè)線程都完成特定的功能和任務(wù),各線程間并發(fā)執(zhí)行,互不影響,并能協(xié)調(diào)一致地處理和共享數(shù)據(jù)。通過(guò)使用多線程,程序員不需要采用全局的事件循環(huán)機(jī)制,就很容易實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為。
11.多態(tài)性
Java的設(shè)計(jì)使它適合于一個(gè)不斷變化的環(huán)境。它允許程序動(dòng)態(tài)地裝入運(yùn)行過(guò)程中所需的類,并可以自由地向類庫(kù)中加入新的方法和實(shí)例變量而不影響用戶程序的執(zhí)行。Java通過(guò)接口來(lái)支持多重繼承,相比嚴(yán)格的類繼承,具有更強(qiáng)的靈活性和可擴(kuò)展性。這一特點(diǎn)使Java非常適合于網(wǎng)絡(luò)編程和軟件開(kāi)發(fā),即使是更新類庫(kù)也不必重新編譯。
- 黑客攻防從入門到精通(實(shí)戰(zhàn)秘笈版)
- 數(shù)據(jù)庫(kù)原理及應(yīng)用(Access版)第3版
- Python量化投資指南:基礎(chǔ)、數(shù)據(jù)與實(shí)戰(zhàn)
- 軟件界面交互設(shè)計(jì)基礎(chǔ)
- 數(shù)據(jù)庫(kù)系統(tǒng)原理及MySQL應(yīng)用教程
- 新編Premiere Pro CC從入門到精通
- 薛定宇教授大講堂(卷Ⅳ):MATLAB最優(yōu)化計(jì)算
- Python機(jī)器學(xué)習(xí)經(jīng)典實(shí)例
- GameMaker Programming By Example
- QGIS:Becoming a GIS Power User
- 大學(xué)計(jì)算機(jī)基礎(chǔ)實(shí)驗(yàn)指導(dǎo)
- Java EE 8 Application Development
- Python之光:Python編程入門與實(shí)戰(zhàn)
- OpenCV 4計(jì)算機(jī)視覺(jué)項(xiàng)目實(shí)戰(zhàn)(原書第2版)
- Mobile Device Exploitation Cookbook