官术网_书友最值得收藏!

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ù)也不必重新編譯。

主站蜘蛛池模板: 洱源县| 梅河口市| 邹城市| 浦县| 秦安县| 仪征市| 江口县| 潮州市| 松阳县| 江永县| 凤城市| 申扎县| 巴南区| 多伦县| 开封县| 社旗县| 肥城市| 靖宇县| 木兰县| 澄迈县| 灵璧县| 拜泉县| 沙雅县| 麻阳| 台江县| 张家港市| 渝中区| 西吉县| 定南县| 定结县| 巴林右旗| 龙江县| 聊城市| 黑龙江省| 马关县| 读书| 龙川县| 萝北县| 耒阳市| 五大连池市| 叙永县|