java與C++的區別

我們知道java晚於C++出現,是基於C++的基礎上重新設計的一門高級面向對象的語言,所以java擯棄了C++中的一些比較難用的特性,java相對與C++也更加輕巧,語法更清晰,更易學。他們的共同點很多,有C++基礎的人學習java會簡便很多,相比較而言,java的編程環境更加簡單點。

下面列出幾個比較顯著的不同點:

1. java是解析性語言而C++是編譯型語言,java在執行的時候是有jvm解析字節碼進行的,而C++的執行需要經過標準的編譯,鏈接在執行

2. java編譯成的class文件是基於字節碼格式的,可以做到一處編寫處處適用,而C++不行,需要對不同的平臺分別編譯

3. 指針,在java中沒有指針的概念,可以有效預防用戶指針操作失誤,而在C++中可以使用指針直接操作內存,相比較而言,java更安全

4. 多繼承,java不支持多繼承,只支持接口的多實現,需要通過內部類和接口來達到多繼承的效果,C++支持多繼承,子類可以直接繼承多個父類

5. 內存管理機制,java有自動內存管理機制,會自動對沒有引用的內存進行回收,用戶不需要直接對內存進行管理,C++用戶申請的內存必須要用戶自己手動釋放,這會增加靈活性的同時加重開發者的負擔

6. 內聯函數,在C++中用戶可以將功能簡單,代碼簡短的函數定義爲內聯函數,在編譯的時候編譯器會自動在調用內聯函數的地方將內聯函數展開,以加快執行速度。java中不支持內聯函數的定義

7. 數據類型 ,java是完全面向對象的編程語言,所以得變量和函數都必須要定義在類裏面,除了基本數據類型,其他的全是類,而C++還保留了C語言的部分面向過程的特性,可以定義全局變量和函數。java還取消了C++中的聯合和結構體。

8. 預處理功能,C/C++在編譯過程中都有一個預編譯階段,即預處理器。預處理器爲開發人員提供了方便,但增加了編譯的複雜性。Java 允許預處理,但不支持預處理器功能,因爲 Java 沒有預處理器,所以爲了實現預處理,它提供了引入語句(import),它與 C++預處理器的功能類似

9. 強制類型轉換,C++中可以自動完成強制類型的準換,例如,double轉換爲float,在java中不存在隱式的類型轉換,所以得類型轉換都需要顯示聲明

10. 操作符重載,java不支持操作符重載,而操作符重載被認爲是C++的重要特性之一

11. 設置函數參數默認值, 在 C 中,代碼組織在函數中,函數可以訪問程序的全局變量。C++增加了類,提供了類算法,該算法是與類相連的函數,C++類方法與 Java 類方法十分相似。由於 C++仍然支持 C,所以 C++程序中仍然可以使用 C 的函數,結果導致函數和方法混合使用,使得 C++程序比較混亂。

Java 沒有函數,作爲一個比 C++更純的面向對象的語言。Java 強迫開發人員把所有例行程序包括在類中。事實上,用方法實現例行程序可激勵開發人員更好地組織編碼。

12 . 字符串
C 和 C++不支持字符串變量,在 C 和 C++程序中使用“Null”終止符代表字符串的結束,在 Java 中字符串是用類對象(String 和 StringBuffer)來實現的,在整個系統中建立字符串和訪問字符串元素的方法是一致的。Java 字符串類是作爲 Java 語言的一部分定義的,而不是作爲外加的延伸部分。此外,Java 還可以對字符串用“+”進行連接操作

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章