Java技術(shù)有下列優(yōu)點(diǎn):簡(jiǎn)單、面向?qū)ο缶牢荨⒎植际酵砍肌⒔忉寛?zhí)行、魯棒售担、安全赁遗、體系結(jié)構(gòu)中立、可移植族铆、高性能岩四、多線程以及動(dòng)態(tài)性。
1. 簡(jiǎn)單
Java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言哥攘,它通過(guò)提供最基本的方法來(lái)完成指定的任務(wù)剖煌,只需理解一些基本的概念,就可以用它編寫出適合于各種情況的應(yīng)用程序逝淹。Java略去了運(yùn)算符重載耕姊、多重繼承等模糊的概念,并且通過(guò)實(shí)現(xiàn)自動(dòng)垃圾收集大大簡(jiǎn)化了程序設(shè)計(jì)者的內(nèi)存管理工作栅葡。另外茉兰,Java也適合于在小型機(jī)上運(yùn)行,它的基本解釋器及類的支持只有40KB左右欣簇,加上標(biāo)準(zhǔn)類庫(kù)和線程的支持也只有215KB左右规脸。
2. 面向?qū)ο?/p>
Java語(yǔ)言的設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡(jiǎn)單的類機(jī)制以及動(dòng)態(tài)的接口模型熊咽。對(duì)象中封裝了它的狀態(tài)變量以及相應(yīng)的方法莫鸭,實(shí)現(xiàn)了模塊化和信息隱藏;而類則提供了一類對(duì)象的原型,并且通過(guò)繼承機(jī)制横殴,子類可以使用父類所提供的方法被因,實(shí)現(xiàn)了代碼的復(fù)用。
3. 分布性
Java是面向網(wǎng)絡(luò)的語(yǔ)言。通過(guò)它提供的類庫(kù)可以處理TCP/IP協(xié)議氏身,用戶可以通過(guò)URL地址在網(wǎng)絡(luò)上很方便地訪問其他對(duì)象。如果你想學(xué)習(xí)Java可以來(lái)這個(gè)群惑畴,首先是一二六蛋欣,中間是五三四,最后是五一九如贷,里面有大量的學(xué)習(xí)資料可以下載陷虎。
4. 魯棒性
Java在編譯和運(yùn)行程序時(shí),都要對(duì)可能出現(xiàn)的問題進(jìn)行檢查杠袱,以消除錯(cuò)誤的產(chǎn)生尚猿。它提供自動(dòng)垃圾收集來(lái)進(jìn)行內(nèi)存管理,防止程序員在管理內(nèi)存時(shí)容易產(chǎn)生的錯(cuò)誤楣富。在編譯時(shí)凿掂,通過(guò)集成的面向?qū)ο蟮漠惓L幚頇C(jī)制,Java提示出可能出現(xiàn)但未被處理的異常纹蝴,幫助程序員正確地進(jìn)行選擇以防止系統(tǒng)的崩潰庄萎。另外,Java在編譯時(shí)還可捕獲類型聲明中的許多常見錯(cuò)誤塘安,防止動(dòng)態(tài)運(yùn)行時(shí)不匹配問題的出現(xiàn)糠涛。
5. 安全性
用于網(wǎng)絡(luò)、分布環(huán)境下的Java必須防止病毒的入侵兼犯。Java不支持指針忍捡,一切對(duì)內(nèi)存的訪問都必須通過(guò)對(duì)象的實(shí)例變量來(lái)實(shí)現(xiàn),這樣就防止了程序員使用“特洛伊”木馬等欺騙手段訪問對(duì)象的私有成員切黔,同時(shí)也避免了指針操作中容易產(chǎn)生的錯(cuò)誤砸脊。
6. 體系結(jié)構(gòu)中立
Java解釋器生成與體系結(jié)構(gòu)無(wú)關(guān)的字節(jié)碼指令,只要安裝了Java運(yùn)行時(shí)系統(tǒng)绕娘,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)的特性使Java程序可以方便地移植到網(wǎng)絡(luò)上的不同機(jī)器绢陌。同時(shí)挨下,Java的類庫(kù)中也實(shí)現(xiàn)了與不同平臺(tái)的接口,使這些類庫(kù)可以移植脐湾。另外臭笆,Java編譯器是由Java語(yǔ)言實(shí)現(xiàn)的,Java運(yùn)行時(shí)系統(tǒng)由標(biāo)準(zhǔn)C語(yǔ)言實(shí)現(xiàn),這使得Java系統(tǒng)本身也具有可移植性愁铺。
8. 解釋執(zhí)行
Java解釋器直接對(duì)Java字節(jié)碼進(jìn)行解釋執(zhí)行鹰霍。字節(jié)碼本身攜帶了許多編譯時(shí)信息,使得連接過(guò)程更加簡(jiǎn)單茵乱。
9. 高性能
和其他解釋執(zhí)行的語(yǔ)言如BASC茂洒、TCL不同,Java字節(jié)碼的設(shè)計(jì)使之能很容易地直接轉(zhuǎn)換成對(duì)應(yīng)于特定CPU的機(jī)器碼瓶竭,從而得到較高的性能督勺。
10. 多線程
多線程機(jī)制使應(yīng)用程序能夠并行執(zhí)行,而且同步機(jī)制保證了對(duì)共享數(shù)據(jù)的正確操作斤贰。通過(guò)使用多線程智哀,程序設(shè)計(jì)者可以分別用不同的線程完成特定的行為,而不需要采用全局的事件循環(huán)機(jī)制荧恍,這樣就很容易實(shí)現(xiàn)網(wǎng)絡(luò)上的實(shí)時(shí)交互行為瓷叫。
11. 動(dòng)態(tài)性
Java的設(shè)計(jì)使它適合于一個(gè)不斷發(fā)展的環(huán)境。在類庫(kù)中可以自由地加入新的方法和實(shí)例變量而不會(huì)影響用戶程序的執(zhí)行块饺。并且Java通過(guò)接口來(lái)支持多重繼承赞辩,使之比嚴(yán)格的類繼承具有更靈活的方式和擴(kuò)展性