For investors
股價(jià):
5.36 美元 %For investors
股價(jià):
5.36 美元 %認(rèn)真做教育 專心促就業(yè)
C++(C++培訓(xùn) )++和Java之間仍存在一些顯著的差異。可以這樣說,這些差異代表著技術(shù)的極大進(jìn)步。一旦我們弄清楚了這些差異,就會(huì)理解為什么說Java是一種優(yōu)秀的程序設(shè)計(jì)語言。本附錄將引導(dǎo)大家認(rèn)識(shí)用于區(qū)分Java和C++的一些重要特征。
(1) 最大的障礙在于速度:解釋過的Java要比C的執(zhí)行速度慢上約20倍。無論什么都不能阻止Java語言進(jìn)行編譯。寫作本書的時(shí)候,剛剛出現(xiàn)了一些準(zhǔn)實(shí)時(shí)編譯器,它們能顯著加快速度。當(dāng)然,我們完全有理由認(rèn)為會(huì)出現(xiàn)適用于更多流行平臺(tái)的純固有編譯器,但假若沒有那些編譯器,由于速度的限制,必須有些問題是 Java不能解決的。
(2) 和C++一樣,Java也提供了兩種類型的注釋。
(3) 所有東西都必須置入一個(gè)類。不存在全局函數(shù)或者全局?jǐn)?shù)據(jù)。如果想獲得與全局函數(shù)等價(jià)的功能,可考慮將static方法和static數(shù)據(jù)置入一個(gè)類里。注意沒有象結(jié)構(gòu)、枚舉或者聯(lián)合這一類的東西,一切只有“類”(Class)!
(4) 所有方法都是在類的主體定義的。所以用C++的眼光看,似乎所有函數(shù)都已嵌入,但實(shí)情并非如何(嵌入的問題在后面講述)。
(5) 在Java中,類定義采取幾乎和C++一樣的形式。但沒有標(biāo)志結(jié)束的分號(hào)。沒有class foo這種形式的類聲明,只有類定義。
class aType()
void aMethod() {}
}
(6) Java中沒有作用域范圍運(yùn)算符“::”。Java利用點(diǎn)號(hào)做所有的事情,但可以不用考慮它,因?yàn)橹荒茉谝粋€(gè)類里定義元素。即使那些方法定義,也必須在一個(gè)類的內(nèi)部,所以根本沒有必要指定作用域的范圍。我們注意到的一項(xiàng)差異是對(duì)static方法的調(diào)用:使用ClassName.methodName()。除此以外,package(包)的名字是用點(diǎn)號(hào)建立的,并能用import關(guān)鍵字實(shí)現(xiàn)C++的“#include”的一部分功能。例如下面這個(gè)語句:import java.awt.*;(#include并不直接映射成import,但在使用時(shí)有類似的感覺。)
(7) 與C++類似,Java含有一系列“主類型”(Primitive type),以實(shí)現(xiàn)更有效率的訪問。在Java中,這些類型包括boolean,char,byte,short,int,long,float以及 double.所有主類型的大小都是固有的,且與具體的機(jī)器無關(guān)(考慮到移植的問題)。這肯定會(huì)對(duì)性能造成一定的影響,具體取決于不同的機(jī)器。對(duì)類型的檢查和要求在Java里變得更苛刻。例如:
■條件表達(dá)式只能是boolean(布爾)類型,不可使用整數(shù)。
■必須使用象X+Y這樣的一個(gè)表達(dá)式的結(jié)果;不能僅僅用“X+Y”來實(shí)現(xiàn)“副作用”。
(8) char(字符)類型使用國(guó)際通用的16位Unicode字符集,所以能自動(dòng)表達(dá)大多數(shù)國(guó)家的字符。
(9) 靜態(tài)引用的字串會(huì)自動(dòng)轉(zhuǎn)換成String對(duì)象。和C及C++不同,沒有獨(dú)立的靜態(tài)字符數(shù)組字串可供使用。
【免責(zé)聲明】本文部分系轉(zhuǎn)載,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)?jiān)?0日內(nèi)與聯(lián)系我們,我們會(huì)予以更改或刪除相關(guān)文章,以保證您的權(quán)益!