- 相關(guān)推薦
Java語(yǔ)言的12大特色
1.Java是簡(jiǎn)單的
Java與C++極為相似,但卻簡(jiǎn)單得多。高級(jí)編程語(yǔ)言的所有特性中,不是絕對(duì)需要的都已刪去了。例如,Java沒有算符過載、標(biāo)題文件、預(yù)處理、指針運(yùn)算、結(jié)構(gòu)、聯(lián)合、多維數(shù)組、模板及隱式類型變換。如果你知道一點(diǎn)C、C++或Pascal,你很快就會(huì)駕馭Java.這里是一個(gè)簡(jiǎn)單的 JavaHelloWorld程序:
publicclassHelloInternet{publicstaticvoidmain(Stringargv[]){System.out.println(“HelloIn-ternet!”)}}
2.Java是面向?qū)ο蟮?/strong>
Java是一種面向?qū)ο蟮木幊陶Z(yǔ)言。除了簡(jiǎn)單的類型,如數(shù)字和布爾算子之外,Java中的大部分都是對(duì)象。
正如任何面向?qū)ο蟮恼Z(yǔ)言一樣,Java代碼也按類組織。每個(gè)類定義一組規(guī)定對(duì)象行為的方法。一個(gè)類可以繼承另一個(gè)類的行為。在類的根層次上,通常是類對(duì)象。
Java支持單繼承類層次結(jié)構(gòu)。這就是說,每個(gè)類一次只能繼承一個(gè)別的類。有些語(yǔ)言允許多繼承性,但這可能造成混亂,使語(yǔ)言不必要地復(fù)雜化。例如,難以想像,一個(gè)對(duì)象會(huì)繼承兩個(gè)完全不同的類的行為。
Java還支持摘要類的接口。這允許編程人員先定義接口的方法,而不必急于馬上確定方法的實(shí)現(xiàn)。一個(gè)類可以施行多個(gè)接口,從而具有真正多繼承性的許多優(yōu)點(diǎn)。一個(gè)對(duì)象也可實(shí)施任意數(shù)量的接口。Java接口與IDL接口極其相似。很容易建立IDLJ編譯器。這就是說,Java可用于CORBA對(duì)象系統(tǒng)來建立分布式對(duì)象系統(tǒng)。鑒于在許多計(jì)算機(jī)系統(tǒng)中都采用IDL接口和CORBA對(duì)象系統(tǒng),這種兼容性是重要的。
3.Java是靜態(tài)類型的
在一個(gè)Java程序中,必須定義所用對(duì)象(數(shù)字、字符、數(shù)組等)的類型。這有助于編程人員很快發(fā)現(xiàn)問題,因?yàn)楫?dāng)程序編譯時(shí)可以檢測(cè)類型錯(cuò)誤。
不過,Java系統(tǒng)中的對(duì)象也有動(dòng)態(tài)類型。要求一個(gè)對(duì)象為動(dòng)態(tài)類型往往是可能的,所以編程人員寫的程序可以對(duì)不同類型的對(duì)象做不同的事。
4.Java是編譯型的
當(dāng)運(yùn)行Java程序時(shí),它首先被編譯成字節(jié)代碼。字節(jié)代碼非常類似于機(jī)器指令,所以Java程序非常高效。然而,字節(jié)代碼并不專對(duì)一種特定的機(jī)器,所以Java程序無需重新編譯便可在眾多不同的計(jì)算機(jī)上執(zhí)行。
Java源程序被編譯成類文件,它相當(dāng)于程序的字節(jié)代碼表現(xiàn)。在一個(gè)Java類文件中,所有對(duì)方法及實(shí)例變量的參照均按名進(jìn)行,并在第一次執(zhí)行代碼時(shí)加以分辨。這使得代碼更通用,更不易受修改的影響,而仍具高效。
5.Java是體系結(jié)構(gòu)中立的
Java語(yǔ)言對(duì)每種計(jì)算機(jī)都一樣。比如,簡(jiǎn)單的類型都是不變的:整數(shù)總是32位,長(zhǎng)整數(shù)總是64位。令人奇怪的是,諸如C及C++等時(shí)髦的編程語(yǔ)言卻不是這樣。由于這些語(yǔ)言定義如此自由,每種編譯器及開發(fā)環(huán)境便各有不同了,這使程序的移植成為討厭的問題。Java程序的移植卻很容易,而且不需要進(jìn)行重新編譯。
6.Java是健全的
Java程序不可能造成計(jì)算機(jī)崩潰。Java系統(tǒng)仔細(xì)檢測(cè)對(duì)內(nèi)存的每次訪問,確認(rèn)它是合法的,而且不致引起任何問題。
不過,即使Java程序也可能有錯(cuò)誤。如果出現(xiàn)某種出乎意料之事,程序不會(huì)崩潰,而把該例外拋棄。程序會(huì)發(fā)現(xiàn)這類例外,并加以處理。
傳統(tǒng)的程序可以訪問計(jì)算機(jī)的全部?jī)?nèi)存。程序可能(無意識(shí)地)修改內(nèi)存中的任何值,這就會(huì)造成問題。Java程序只能訪問內(nèi)存中允許它們?cè)L問的那些部分,所以Java程序不可能修改不擬修改的值。
7.Java是小巧的
由于Java的設(shè)計(jì)是要在小的計(jì)算機(jī)上運(yùn)行,作為一種編程語(yǔ)言來說其系統(tǒng)是相對(duì)較小的。它能有效地在4MB以上RAM的PC機(jī)上運(yùn)行。Java翻譯器只占用幾百KB.這種翻譯器對(duì)Java的平臺(tái)無關(guān)性和可移植性是可靠的。
由于Java很小,它對(duì)內(nèi)存很小的計(jì)算機(jī),如基于Java的PC機(jī),以及電視機(jī)、烤箱、電話機(jī)及家用計(jì)算機(jī)等,是很理想的。
8.Java是多線程的
Java程序可以執(zhí)行一個(gè)以上的線程。比如,它可以在一個(gè)線程中完成某一耗時(shí)的計(jì)算,而其它線程與用戶進(jìn)行交互對(duì)話。所以用戶不必停止工作,等待Java程序完成耗時(shí)的計(jì)算。
在多線程環(huán)境中的編程通常是困難的,因?yàn)樵S多東西可能同時(shí)出現(xiàn)。但是,Java提供了易于使用的同步特性,使編程更為方便。
Java線程通常被映射為實(shí)際的操作系統(tǒng)線程,只要底層操作系統(tǒng)支持這種映射。因此,用Java寫的應(yīng)用程序可說是“MP熱”。這就是說,如果它們?cè)诙嗵幚砥鳈C(jī)器上運(yùn)行,它們更將表現(xiàn)不凡。
9.Java是可收集無用的存儲(chǔ)單元的
用C及C++寫軟件的編程人員必須仔細(xì)跟蹤所用的內(nèi)存塊。當(dāng)一個(gè)塊不再使用時(shí),他們務(wù)必讓程序釋放它,從而方可再用。在大的項(xiàng)目中,這可能很困難,并往往成為出錯(cuò)和內(nèi)存不足的根源。
在Java的情況下,編程人員不必為內(nèi)存管理操心。Java系統(tǒng)有一個(gè)叫做“無用單元收集器”的內(nèi)置程序,它掃描內(nèi)存,并自動(dòng)釋放那些不再使用的內(nèi)存塊。
10.Java是快速的
Java比典型的腳本語(yǔ)言大為有效,但它比C慢20倍。這對(duì)大多數(shù)應(yīng)用是可接受的。
不久的將來,代碼生成器就可供利用了,這將使Java程序幾近于用C或C++編寫的程序那么快。
11.Java是安全的
Java程序沒有指針,而且象這樣的字節(jié)代碼程序強(qiáng)在類型上,所以在執(zhí)行之前它可能驗(yàn)證Java程序。被驗(yàn)證的Java程序得以保證不突破Java語(yǔ)言的任何限制,而且可以安全地執(zhí)行。Java字節(jié)代碼驗(yàn)證被Web瀏覽器用來確保小程序不含病毒。
12.Java是可擴(kuò)展的
Java程序可與用其它語(yǔ)言編寫的現(xiàn)存程序庫(kù)連接。由于Java數(shù)據(jù)結(jié)構(gòu)與C的數(shù)據(jù)結(jié)構(gòu)的類型極為相似,這是相當(dāng)方便的。最大的問題在于,現(xiàn)有多線程程序庫(kù)為數(shù)不多。
Java程序可以聲明某些方法是內(nèi)部的,然后,把這些內(nèi)部方法映射成軟件庫(kù)所定義的功能,從而動(dòng)態(tài)地鏈接到虛擬機(jī)。
IT認(rèn)證
【Java語(yǔ)言的12大特色】相關(guān)文章:
Java語(yǔ)言的12大特色04-30
莎士比亞語(yǔ)言特色淺析04-29
通過轉(zhuǎn)變語(yǔ)言方式增強(qiáng)課堂語(yǔ)言特色04-29
手機(jī)短信語(yǔ)言特色探析04-28
語(yǔ)言特色與語(yǔ)言輸入輸出關(guān)聯(lián)教學(xué)04-30
淺析中外影視翻譯的語(yǔ)言特色05-02
語(yǔ)言特色與語(yǔ)言輸入輸出關(guān)聯(lián)教學(xué)04-30
淺論《推銷員之死》的語(yǔ)言特色04-27