芯學(xué)苑java培訓(xùn)丨初學(xué)java需要了解java語言的優(yōu)點(diǎn)。本文西安芯學(xué)苑小編就為大家詳細(xì)介紹java語言的優(yōu)點(diǎn)。
Java是一種簡單性、面向?qū)ο?、分布性、編譯和解釋性、穩(wěn)健性、安全性、可移植性、高性能、動(dòng)態(tài)性、具有多線程能力的新一代語言。這樣比較抽象,其實(shí)南京聯(lián)迪杰易職業(yè)培訓(xùn)學(xué)校更加認(rèn)為它是一種聯(lián)系方式,一種人與電腦,人與之間的交流方式,而且交流的方式就是一行行漂亮的代碼,就像過去的鴻雁傳書,當(dāng)初的書信傳遞。
Java是一種簡單的語言
Java刪除了許多極少被使用、不容易理解和容易令人混淆的C++功能。刪除的功能主要包括運(yùn)算符重載、多重繼承以及廣泛的自動(dòng)強(qiáng)迫同型。與C++相比,Java語言也提供重載函數(shù),不過它重載的對象是函數(shù)而非變量或是運(yùn)算符。
Java的目標(biāo)之一是要協(xié)助開發(fā)能獨(dú)立地在小型機(jī)器上順利執(zhí)行的軟件。Java的基本解釋器和對象類支持約占40KB空間,而若增加基本的標(biāo)準(zhǔn)程序庫和線程支持則需增加約175KB。體積小對于在嵌入式系統(tǒng)中的使用是很重要的,正因?yàn)檫@樣,Java才能夠通過網(wǎng)絡(luò)輕易下載。
Java是穩(wěn)健的
Java的目標(biāo)是要協(xié)助開發(fā)人員建立各方面可靠的程序,Java強(qiáng)調(diào):開發(fā)人員可在設(shè)計(jì)初期即檢查可能存在的問題,其后則進(jìn)行動(dòng)態(tài)的檢查,并排除容易出現(xiàn)的錯(cuò)誤。C++語言的優(yōu)點(diǎn)是允許在編譯時(shí)進(jìn)行深入的檢查,以便提前發(fā)現(xiàn)錯(cuò)誤。
Java與C/C++之間{zd0}的不同點(diǎn)之一在于Java擁有一種模型,能排除內(nèi)存被覆蓋和毀損的可能性。Java不采用指針計(jì)算法,而是提供真正的數(shù)組陣列。這允許程序執(zhí)行下標(biāo)檢查,但它不允許將一個(gè)整數(shù)轉(zhuǎn)成指針的情形發(fā)生。
Java是面向?qū)ο蟮恼Z言
面向?qū)ο笫窃跇I(yè)界中一度流行的術(shù)語之一。不過,它確定是一項(xiàng)很強(qiáng)的設(shè)計(jì)功能,它可以促成明確的接口定義,并允許開發(fā)人員建立可重復(fù)使用的軟件部件。
Java是分布式語言
Java擁有廣泛的能輕易地處理TCP/IP協(xié)議的運(yùn)行庫,例如HTTP與FTP類庫等等。這使得在Java中比在C或C++中更容易建立網(wǎng)絡(luò)連接。Java應(yīng)用程序可以借助URL通過網(wǎng)絡(luò)開啟和存取對象,就如同存取一個(gè)本地文件系統(tǒng)一樣簡單。
Java的安全性
Java設(shè)計(jì)的目的是要能夠使用于網(wǎng)絡(luò)/分布式運(yùn)算環(huán)境。為此,Java非常強(qiáng)調(diào)安全性,以確保建立無病毒且不會(huì)被侵入的系統(tǒng)。Java的驗(yàn)證技術(shù)是以公鑰加密法為基礎(chǔ)。鍵壯性與安全性之間存在一種很強(qiáng)的相互作用關(guān)系。例如,指針語意的改變,讓應(yīng)用程序不可能偽造對象結(jié)構(gòu)存取權(quán),或存取它們在對象中沒有存取權(quán)的?。這等于關(guān)上大門,杜絕大多數(shù)病毒的侵入。
高效能的Java程序
雖然解決過的字節(jié)代碼性能已相當(dāng)不錯(cuò),不過有些情形下還是要求程序達(dá)到更高執(zhí)行效能。字節(jié)代碼可以動(dòng)態(tài)地解釋為執(zhí)行應(yīng)用程序特定CPU的機(jī)器碼。這對于習(xí)慣使用一般編譯器與動(dòng)態(tài)載人器的程序設(shè)計(jì)者而言,有點(diǎn)類似將最終的機(jī)器碼生成器放到動(dòng)態(tài)載入器之內(nèi)。
字節(jié)代碼格式在設(shè)計(jì)上即已考慮了機(jī)器碼的產(chǎn)生,因此實(shí)際的機(jī)器碼生成程序相當(dāng)簡單。其生成的機(jī)器碼是有效的,編譯器自動(dòng)分配寄存器,而在生成字節(jié)代碼期間也會(huì)進(jìn)行一些優(yōu)化。
我們以解決碼在一臺SunMicrosystemRCStation10上執(zhí)行時(shí),達(dá)到每秒三十萬個(gè)函數(shù)調(diào)用速率。字節(jié)代碼轉(zhuǎn)換至機(jī)器碼的速度性能,幾乎和直接生成機(jī)器目標(biāo)代碼的C或C++沒有什么兩樣。
Java是解釋執(zhí)行的
Java解決器可以直接在任何已移植該解釋器的機(jī)器上解釋、執(zhí)行Java字節(jié)代碼。再者,由于其鏈接過程比較傾向于逐步增量與輕量過程,因此程序開發(fā)更快、更精密。
Java對多線程的支持
Java擁有一組復(fù)雜的同步化基本單元,它們是以廣泛使用的CARHoare監(jiān)視器與條件變量圖為基礎(chǔ)的。將這些概念融合到語言中之后,它們就變得更容易使用且更為健壯。這種融合方式大部分來自Xerox的Cedar/Mesa系統(tǒng)。
多線程所帶來的其它好處包括更好的交互式回應(yīng)能力與實(shí)時(shí)運(yùn)行能力。然而這會(huì)受到底層平臺的限制:獨(dú)立執(zhí)行的Java運(yùn)行環(huán)境有著很好的實(shí)時(shí)執(zhí)行能力,而若在其他系統(tǒng)例如Unix、Windows、Macintosh或WindowsNT等平臺上執(zhí)行時(shí),則會(huì)由于底層平臺的原因而使實(shí)時(shí)響應(yīng)能力受到影響。
Java的動(dòng)態(tài)特性
就各方面而言,Java是一種比C或C++更具動(dòng)態(tài)特性的語言。它在設(shè)計(jì)上強(qiáng)調(diào)為不斷發(fā)展的運(yùn)算環(huán)境提供支持。Java能了解由ObjectiveC引用過來的接口概念。簡單地說,接口就是規(guī)范一組與對象相對應(yīng)的成員函數(shù),但對象如何實(shí)現(xiàn)這些成員函數(shù)則亟待解決。一個(gè)類實(shí)現(xiàn)一個(gè)接口是要提供這個(gè)接口所包含的所有成員函數(shù)的實(shí)現(xiàn),與此相反,派生子類則從父類繼承了一組成員函數(shù)以及它們的實(shí)現(xiàn)。一個(gè)Java類可以實(shí)行多個(gè)接口,但只能從一個(gè)父類繼承。接口告訴連接對象它可以做什么而不是怎么做,使得它在代碼上更具有靈活性和可復(fù)用性。在C或C++程序中,如果你有一個(gè)指針指向一個(gè)對象,但你不知道該對象的類型是什么,那么你將沒有辦法找出它。然而,在Java中根據(jù)運(yùn)行類型信息進(jìn)行查找是很直截了當(dāng)?shù)模驗(yàn)樵诰幾g階段和運(yùn)行階段都會(huì)檢查類型轉(zhuǎn)換。所以你在Java中wq可以信任這種轉(zhuǎn)換,而C與C++的編譯器則只是相信你自己已做了正確的處理。
以上就是芯學(xué)苑小編為大家總結(jié)的關(guān)于初學(xué)java需要知道的java語言的優(yōu)點(diǎn),希望對初學(xué)java的朋友有所幫助。