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