淺析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()恢復所有等待中的執行緒。