1. 程式人生 > >淺析Java語言與C++語言的區別

淺析Java語言與C++語言的區別

1.    java中類繼承,如果父類方法要重寫,不用加任何關鍵字;而C++卻要加 virtual 關鍵字。

2.    Java中,super可以表示父類,this表示類本身。

3.    C++的類可以多繼承,即一個類有多個父類;而java只能單繼承,即一個類只能由一個父類繼承。

4.    C++類繼承採用符號“:”,而java類繼承採用關鍵字“extends”。

5.    C++中的域運算子用“::”,指標運算用“->”;而java中這些運算子都用運算子“.”。

6.    C++中包含檔案採用預處理命令“#include”,檔案層級之間用符號“\”隔開;而java中採用關鍵字“import”以包的形式匯入,檔案層級之間採用符號“.”隔開。

7.    C++中所有的程式程式碼都在一個“*.h”或者“*.cpp”檔案裡面;而java的程式程式碼是在包package裡面。

8.    C++中宣告常量的關鍵字是“const”;java中宣告常量的關鍵字是“final”,只不過java中關鍵字final還有另外的作用:當一個成員函式被定義為final,則這個成員函式不能被重寫;當一個類被定義為final,則這個類不能被繼承。

9.    C++的介面是通過定義純虛類來實現的;而java是通過使用關鍵字“interface”定義實現的,java的介面可以多繼承,一個介面可以擁有幾個父介面(也叫做介面的擴充套件),實現介面的類必須要有關鍵字“implement”來定義。

10.  在java中方法的區域性變數位於棧上,類物件位於堆上,所以方法內部類物件不能使用區域性變數,但是可以使用常量。

11.  Java中建立多執行緒有兩種方法,一種是類實現“Runable”介面,一種是類繼承“Thread”虛類,然後這兩種方法都要對run()函式進行重寫;C++建立多執行緒有三種辦法,一種是用Windows的API函式“CreateThead()”,一種是MFC中的函式“AfxBeginThread()”,一種是MS的“_beginthreadex()”函式。

12.  Java多執行緒的排程方法有:setPriority(設定優先順序),sleep(睡眠),join(加入),yield(讓步);

13.  Java執行緒同步採用關鍵字“synthronized(鎖的標誌)”,同步程式碼塊的格式為:synthronized(threadname)。

14.  Java多執行緒間實現通訊,需要用到如下3個方法:wait()表示讓當前執行緒進入等待狀態,notify()表示恢復一個等待中的執行緒,notifyAll()恢復所有等待中的執行緒。