Java有哪些常用語?不介紹Java 常用語,對(duì)Java 的總體介紹就是不完整的。盡管促使Java 誕生的源動(dòng)力是可移植性和安全性,但在Java 語言最終成型的過程中,其他一些因素也起了重要的作用。接下來,小編就一一來介紹一下。
· 簡(jiǎn)單(Simple)
· 安全(Secure)
· 可移植(Portable)
· 面向?qū)ο?Object-oriented)
· 健壯(Robust)
· 多線程(Multithreaded)
· 體系結(jié)構(gòu)中立(Architecture-neutral)
· 解釋執(zhí)行(Interpreted)
· 高性能(High performance)
· 分布式(Distributed)
· 動(dòng)態(tài)(Dynamic)
在這些特性中,安全和可移植已經(jīng)在有很多文章介紹過,本文主要針對(duì)其他特性的含義講解。
一、簡(jiǎn)單
Java 設(shè)計(jì)目的是讓專業(yè)程序員覺得既易學(xué)又好用。假設(shè)你有編程經(jīng)歷,你將不覺得Java 難掌握。如果你已經(jīng)理解面向?qū)ο缶幊痰幕靖拍?,學(xué)習(xí)Java 將更容易。如果你是一個(gè)經(jīng)驗(yàn)豐富的C++ 程序員,那就最好了,學(xué)習(xí)Java 簡(jiǎn)直不費(fèi)吹灰之力。
因?yàn)镴ava 承C/C++ 語法和許多C++ 面向?qū)ο蟮奶匦裕蠖鄶?shù)程序員在學(xué)習(xí)Java 時(shí)都不會(huì)覺得太難。另外,C++中許多容易混淆的概念,或者被Java 棄之不用了,或者以一種更清楚、更易理解的方式實(shí)現(xiàn)。
除了和C/C++ 類似以外,Java 的另外一個(gè)屬性也使它更容易學(xué)習(xí):設(shè)計(jì)人員努力使Java 中不出現(xiàn)顯得讓人吃驚的特性。在Java 中,很少明確地告訴你如何才能完成一項(xiàng)特定的任務(wù)。
二、 面向?qū)ο?/FONT>
盡管受到其前輩的影響,但Java 沒被設(shè)計(jì)成兼容其他語言源代碼的程序。這允許Java 開發(fā)組自由地從零開始。這樣做的一個(gè)結(jié)果是,Java 語言可以更直接、更易用、更實(shí)際的接近對(duì)象。
通過對(duì)近幾十年面向?qū)ο?/FONT>軟件優(yōu)點(diǎn)的借鑒,Java 設(shè)法在純進(jìn)化論者的“任何事物都是一個(gè)對(duì)象”和實(shí)用主義者的“不討論對(duì)象不對(duì)象”的論點(diǎn)之間找到了平衡。Java 的對(duì)象模型既簡(jiǎn)單又容易擴(kuò)展,對(duì)于簡(jiǎn)單數(shù)據(jù)類型,例如整數(shù),它保持了高性能,但不是對(duì)象。
三、健壯
萬維網(wǎng)上多平臺(tái)的環(huán)境使得它對(duì)程序有特別的要求,因?yàn)槌绦虮仨氃谠S多系統(tǒng)上可靠地執(zhí)行。這樣,在設(shè)計(jì)Java 時(shí),創(chuàng)建健壯的程序被放到了高度優(yōu)先考慮的地位。
為了獲得可靠性,Java 在一些關(guān)鍵的地方限制你,強(qiáng)迫你在程序開發(fā)過程中及早發(fā)現(xiàn)錯(cuò)誤。同時(shí),Java 使你不必?fù)?dān)心引起編程錯(cuò)誤的許多最常見的問題。因?yàn)镴ava 是一種嚴(yán)格的類型語言,它不但在編譯時(shí)檢查代碼,而且在運(yùn)行時(shí)也檢查代碼。事實(shí)上,在運(yùn)行時(shí)經(jīng)常碰到的難以重現(xiàn)的、難以跟蹤的許多錯(cuò)誤在Java 中幾乎是不可能產(chǎn)生的。
要知道,使程序在不同的運(yùn)行環(huán)境中以可預(yù)見的方式運(yùn)行是Java 的關(guān)鍵特性。
為更好理解Java 是如何具有健壯性的,讓我們考慮使程序失敗的兩個(gè)主要原因:內(nèi)存管理錯(cuò)誤和誤操作引起的異常情況(也就是運(yùn)行時(shí)錯(cuò)誤)。在傳統(tǒng)的編程環(huán)境下,內(nèi)存管理是一項(xiàng)困難、乏味的任務(wù)。
例如,在C/C++ 中,程序員必須手工地分配并且釋放所有的動(dòng)態(tài)內(nèi)存。這有時(shí)會(huì)導(dǎo)致問題,因?yàn)槌绦騿T可能忘記釋放原來分配的內(nèi)存,或者釋放了其他部分程序正在使用的內(nèi)存。Java 通過替你管理內(nèi)存分配和釋放,可以從根本上消除這些問題(事實(shí)上,釋放內(nèi)存是完全自動(dòng)的,因?yàn)镴ava 為閑置的對(duì)象提供內(nèi)存垃圾自動(dòng)收集)。
在傳統(tǒng)的環(huán)境下,異常情況可能經(jīng)常由“被零除”或“文件未找到”這樣的情況引起,而我們又必須用既繁多又難以理解的一大堆指令來對(duì)它們進(jìn)行管理。Java 通過提供面向?qū)ο蟮漠惓L幚頇C(jī)制來解決這個(gè)問題。一個(gè)寫得很好的Java 程序,所有的運(yùn)行時(shí)錯(cuò)誤都可以并且應(yīng)該被你的程序自己進(jìn)行管理。
四、多線程
設(shè)計(jì)Java 的目標(biāo)之一是為了滿足人們對(duì)創(chuàng)建交互式網(wǎng)上程序的需要。為此,Java 支持多線程編程,因而你用 Java 編寫的應(yīng)用程序可以同時(shí)執(zhí)行多個(gè)任務(wù)。
Java 運(yùn)行時(shí)系統(tǒng)在多線程同步方面具有成熟的解決方案,這使你能夠創(chuàng)建出運(yùn)行平穩(wěn)的交互式系統(tǒng)。Java 的多線程機(jī)制非常好用,因而你只需關(guān)注程序細(xì)節(jié)的實(shí)現(xiàn),不用擔(dān)心后臺(tái)的多任務(wù)系統(tǒng)。
五、結(jié)構(gòu)中立
Java 設(shè)計(jì)者考慮的一個(gè)主要問題是程序代碼的持久性和可移植性。程序員面臨的一個(gè)主要問題是,不能保證今天編寫的程序明天能否在同一臺(tái)機(jī)器上順利運(yùn)行。
操作系統(tǒng)升級(jí)、處理器升級(jí)以及核心系統(tǒng)資源的變化,都可能導(dǎo)致程序無法繼續(xù)運(yùn)行。Java 設(shè)計(jì)者對(duì)這個(gè)問題做過多種嘗試,Java 虛擬機(jī)(JVM )就是試圖解決這個(gè)問題的。他們的目標(biāo)是“只要寫一次程序,在任何地方、任何時(shí)間該程序永遠(yuǎn)都能運(yùn)行”。在很大程度上,Java 實(shí)現(xiàn)了這個(gè)目標(biāo)。
六、解釋性和高性能
前面已提到,通過把程序編譯為Java 字節(jié)碼這樣一個(gè)中間過程,Java 可以產(chǎn)生跨平臺(tái)運(yùn)行的程序。字節(jié)碼可以在提供Java 虛擬機(jī)(JVM )的任何一種系統(tǒng)上被解釋執(zhí)行。
早先的許多嘗試解決跨平臺(tái)的方案對(duì)性能要求都很高。其他解釋執(zhí)行的語言系統(tǒng),如BASIC,Tcl,PERL 都有無法克服的性能缺陷。然而,Java 卻可以在非常低檔的CPU 上順利運(yùn)行。
前面已解釋過,Java 確實(shí)是一種解釋性語言,Java 的字節(jié)碼經(jīng)過仔細(xì)設(shè)計(jì),因而很容易便能使用JIT 編譯技術(shù)將字節(jié)碼直接轉(zhuǎn)換成高性能的本機(jī)代碼。Java 運(yùn)行時(shí)系統(tǒng)在提供這個(gè)特性的同時(shí)仍具有平臺(tái)獨(dú)立性,因而“高效且跨平臺(tái)”對(duì)Java 來說不再矛盾。
七、分布式
Java 為Internet 的分布式環(huán)境而設(shè)計(jì),因?yàn)樗幚鞹CP/IP 協(xié)議。事實(shí)上,通過URL 地址存取資源與直接存取一個(gè)文件的差別是不太大的。
Java 原來的版本(Oak) 包括了內(nèi)置的地址空格消息傳遞(intra-address-space) 特性。這允許位于兩臺(tái)不同的計(jì)算機(jī)上的對(duì)象可以遠(yuǎn)程地執(zhí)行過程。Java 最近發(fā)布了叫做遠(yuǎn)程方法調(diào)用(Remote Method Invocation ,RMI )的軟件包,這個(gè)特性使客戶機(jī)/服務(wù)器編程達(dá)到了無與倫比的抽象級(jí)。
八、動(dòng)態(tài)
Java 程序帶有多種的運(yùn)行時(shí)類型信息,用于在運(yùn)行時(shí)校驗(yàn)和解決對(duì)象訪問問題。這使得在一種安全、有效的方式下動(dòng)態(tài)地連接代碼成為可能,對(duì)小應(yīng)用程序環(huán)境的健壯性也十分重要,因?yàn)樵谶\(yùn)行時(shí)系統(tǒng)中,字節(jié)碼內(nèi)的小段程序可以動(dòng)態(tài)地被電腦系統(tǒng)更新。
|