以面向?qū)ο蟮能浖_發(fā)方法為基礎(chǔ)
1.3 Java語(yǔ)言的特點(diǎn)
作為當(dāng)前一種被廣泛使用的面向?qū)ο缶幊陶Z(yǔ)言,Java具有多方面的特點(diǎn)。如果與其他眾多的編程語(yǔ)言做一下比較,會(huì)發(fā)現(xiàn)這些特點(diǎn)正是Java語(yǔ)言之所以如此風(fēng)靡的原因所在。雖然Java在某些方面(例如資源耗費(fèi))也存在一些不足,但這絲毫不影響Java作為目前最優(yōu)秀面向?qū)ο缶幊陶Z(yǔ)言的地位。
Java語(yǔ)言具有能獨(dú)立于平臺(tái)而運(yùn)行、面向?qū)ο?、可?duì)動(dòng)態(tài)畫面進(jìn)行設(shè)計(jì)與操作、堅(jiān)固性等特點(diǎn),又具有多線程、內(nèi)置校驗(yàn)器用來(lái)防止病毒入侵等功能,所以用來(lái)在Internet上研制與開發(fā)軟件時(shí),特別受到用戶的歡迎。
Java語(yǔ)言的優(yōu)點(diǎn)主要表現(xiàn)在:簡(jiǎn)單、面向?qū)ο?、自?dòng)的內(nèi)存管理、分布計(jì)算、穩(wěn)定、安全、解釋執(zhí)行、結(jié)構(gòu)中立、平滑移植、多線程以及異常處理等方面。
1.簡(jiǎn)單
由于Java的結(jié)構(gòu)類似于C和C++,所以一般的熟悉C與C++語(yǔ)言的編程人員稍加學(xué)習(xí)就不難掌握J(rèn)ava的編程技術(shù)了。Java所具有的自動(dòng)內(nèi)存管理機(jī)制也大大簡(jiǎn)化了Java程序設(shè)計(jì)開發(fā)。
2.面向?qū)ο?/p>
簡(jiǎn)單地說(shuō),面向?qū)ο笤O(shè)計(jì)是一種以數(shù)據(jù)(對(duì)象)以及其接口為重心的程序設(shè)計(jì)技術(shù),面向?qū)ο蟮脑O(shè)計(jì)可以說(shuō)是定義程序模塊如何“即插即用”的機(jī)制。Java的面向?qū)ο髾C(jī)制實(shí)際上可以看作是C++面向?qū)ο髾C(jī)制的延伸。Java提供了簡(jiǎn)單的類機(jī)制和動(dòng)態(tài)的構(gòu)架模型,對(duì)象中封裝了它的狀態(tài)變量和方法(函數(shù)、過(guò)程),實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型,通過(guò)繼承和重載機(jī)制,子類可以使用或者重新定義父類所提供的過(guò)程,從而實(shí)現(xiàn)代碼的復(fù)用。
3.自動(dòng)內(nèi)存管理
Java的自動(dòng)無(wú)用內(nèi)存回收集(Auto Garbage Collectino)實(shí)現(xiàn)了內(nèi)存的自動(dòng)管理,因此簡(jiǎn)化了Java程序開發(fā)的工作,早期的GC(Garbage Collectino)對(duì)系統(tǒng)資源搶占太多而影響整個(gè)系統(tǒng)的運(yùn)行,Java2對(duì)GC進(jìn)行的改良使Java的效率有了很大提高。GC的工作機(jī)制是周期性的自動(dòng)回收無(wú)用存儲(chǔ)單元。Java的自動(dòng)內(nèi)存回收機(jī)制簡(jiǎn)化程序開發(fā)的同時(shí),提高了程序的穩(wěn)定性和可靠性。
4.分布計(jì)算
Java為程序開發(fā)提供了java.net包,該包提供了一組使程序開發(fā)者可以輕易實(shí)現(xiàn)基于TCP/IP的分布式應(yīng)用系統(tǒng)。此外,Java還提供了專門針對(duì)互聯(lián)網(wǎng)應(yīng)用的類庫(kù),如URL、Java mail等等。
5.穩(wěn)定性
人們最常見的應(yīng)用程序錯(cuò)誤就是“非法訪問(wèn)xxx內(nèi)存”,其實(shí)質(zhì)是程序指針使用出錯(cuò)。Java擁有一種指針(pointer)模型,能夠排除發(fā)生內(nèi)存被覆蓋和毀損數(shù)據(jù)的可能性。Java不采用指針?biāo)阈g(shù)法,而是提供真正的數(shù)組(Array),運(yùn)行程序下標(biāo)檢查;另外,它也不會(huì)發(fā)生有對(duì)象類型轉(zhuǎn)換將一個(gè)任意數(shù)轉(zhuǎn)換成指針的情形。Java的自動(dòng)內(nèi)存管理在減少編程工作的同時(shí),大大減少了運(yùn)行態(tài)錯(cuò)誤。
6.安全性
Java的設(shè)計(jì)目的是提供一個(gè)用于網(wǎng)絡(luò)/分布式的計(jì)算環(huán)境。因此,Java強(qiáng)調(diào)安全性,如確保無(wú)病毒、小應(yīng)用程序運(yùn)行安全控制等等。Java的驗(yàn)證技術(shù)是以公鑰(public-key)加密算法為基礎(chǔ),而且從環(huán)境變量、類加載器、文件系統(tǒng)、網(wǎng)絡(luò)資源和名字空間等方面實(shí)施安全策略。
7.解釋執(zhí)行
Java解釋器(interpreter)可以直接在任何已移植的解釋器的機(jī)器上解釋、執(zhí)行Java字節(jié)代碼,不需重新編譯。當(dāng)然,其版本向上兼容,因此如果是高版本環(huán)境下編譯的Java字節(jié)碼到低版本環(huán)境下運(yùn)行也許會(huì)有部分問(wèn)題。
8.跨異構(gòu)環(huán)境
Java是網(wǎng)絡(luò)空間的“世界語(yǔ)”,編譯后的Java字節(jié)碼是一種“結(jié)構(gòu)中立性”(architecture neutral)的目標(biāo)文件格式,可以在所有提供Java虛擬機(jī)(JVM)的多種不同主機(jī)、不同處理器上運(yùn)行。
9.平滑移植
“write once,run every where!”也許是Java最誘人的特點(diǎn)。用Java開發(fā)而成的系統(tǒng)其移植工作幾乎為零,一般情況下只需對(duì)配置文件、批處理文件作相應(yīng)修改即可實(shí)現(xiàn)平滑移植。
10.多線程
Java的多線程(multithreading)機(jī)制使程序可以并行運(yùn)行。Java還有一組同步化基本單元,他們是以廣泛使用的C.A.R.Hoare監(jiān)視器與條件變量圖為基礎(chǔ)的。同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作。多線程使程序設(shè)計(jì)者可以用不同的線程分別實(shí)現(xiàn)各種不同的行為,而不需要采用全局的事件循環(huán)機(jī)制,因此,使用Java語(yǔ)言可以非常輕松地實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為。
11.異常處理
C語(yǔ)言程序員大都有使用goto語(yǔ)句來(lái)做條件跳轉(zhuǎn),Java編程中不支持goto語(yǔ)句。Java采用異常模型使程序的主流邏輯變得更加清晰明了,并且能夠簡(jiǎn)化錯(cuò)誤處理工作。
12.可擴(kuò)充
Java目前發(fā)布的J2EE標(biāo)準(zhǔn)主要為采用Java技術(shù)為企業(yè)提供全面解決方案提供了一個(gè)技術(shù)規(guī)范框架,規(guī)劃了一個(gè)利用現(xiàn)有和未來(lái)各種java技術(shù)整合解決企業(yè)應(yīng)用遠(yuǎn)景藍(lán)圖。
免責(zé)聲明:以上內(nèi)容源自網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵犯您的原創(chuàng)版權(quán)請(qǐng)告知,我們將盡快刪除相關(guān)內(nèi)容。