C++編程語言和Java之間有許多區(qū)別和相似之處。 C++和Java之間的最大差異如下列表所示:
對比項 | C++ | Java |
---|---|---|
平臺無關(guān) | C++是平臺相關(guān)的 | Java是平臺無關(guān)的 |
主要用于 | C++主要用于系統(tǒng)編程 | Java主要用于應(yīng)用程序編程。它廣泛應(yīng)用于窗口,基于Web,企業(yè)和移動應(yīng)用 |
Goto | C++支持goto語句 | Java不支持goto語句 |
多繼承 | C++支持多重繼承 | Java不支持通過類的多繼承,它可以通過java中的接口實現(xiàn) |
操作符重載 | C++支持操作符重載 | Java不支持運算符重載 |
指針 | C++支持指針,可以在C++中編寫指針的程序 | Java在內(nèi)部支持指針。但是不能在java中編寫指針程序。這意味著在Java中限制了指針支持 |
編譯器和解釋器 | C++僅使用編譯器 | Java使用編譯器和解釋器 |
按值調(diào)用和通過引用調(diào)用 | C++支持按值調(diào)用和按引用調(diào)用 | Java僅支持按值調(diào)用,在java中沒有通過引用調(diào)用。 |
結(jié)構(gòu)體和聯(lián)合體 | C++支持結(jié)構(gòu)體和聯(lián)合體 | Java不支持結(jié)構(gòu)體和聯(lián)合體 |
線程支持 | C++沒有內(nèi)置的線程支持。它依賴于第三方庫來支持線程。 | Java有內(nèi)置線程支持。 |
文檔注釋 | C++不支持文檔注釋 | Java支持文檔注釋,可使用(/** ... */ )來創(chuàng)建Java源代碼的文檔。 |
virtual 關(guān)鍵字 |
C++支持virtual 關(guān)鍵字,這樣可以用于決定是否覆蓋一個函數(shù)。 |
Java沒有virtual 關(guān)鍵字。默認情況下,可以覆蓋所有非靜態(tài)方法。換句話說,非靜態(tài)方法默認是虛擬的。 |
無符號右移>>> |
C++不支持>>> 運算符 |
Java支持無符號右移>>> 運算符,在頂部為負數(shù)填充零。對于正數(shù),它的工作原理與>> 運算符相同。 |
繼承樹 | C++總是創(chuàng)建一個新的繼承樹 | Java總是使用單繼承樹,因為所有類都是Java類中的Object類的子類。Object類是java中的繼承樹的根。 |