C++編程語言和Java之間有許多區(qū)別和相似之處。 C++和Java之間的最大差異如下列表所示:
| 對比項(xiàng) | C++ | Java |
|---|---|---|
| 平臺無關(guān) | C++是平臺相關(guān)的 | Java是平臺無關(guān)的 |
| 主要用于 | C++主要用于系統(tǒng)編程 | Java主要用于應(yīng)用程序編程。它廣泛應(yīng)用于窗口,基于Web,企業(yè)和移動(dòng)應(yīng)用 |
| Goto | C++支持goto語句 | Java不支持goto語句 |
| 多繼承 | C++支持多重繼承 | Java不支持通過類的多繼承,它可以通過java中的接口實(shí)現(xiàn) |
| 操作符重載 | C++支持操作符重載 | Java不支持運(yùn)算符重載 |
| 指針 | 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)鍵字,這樣可以用于決定是否覆蓋一個(gè)函數(shù)。 |
Java沒有virtual關(guān)鍵字。默認(rèn)情況下,可以覆蓋所有非靜態(tài)方法。換句話說,非靜態(tài)方法默認(rèn)是虛擬的。 |
無符號右移>>> |
C++不支持>>>運(yùn)算符 |
Java支持無符號右移>>>運(yùn)算符,在頂部為負(fù)數(shù)填充零。對于正數(shù),它的工作原理與>>運(yùn)算符相同。 |
| 繼承樹 | C++總是創(chuàng)建一個(gè)新的繼承樹 | Java總是使用單繼承樹,因?yàn)樗蓄惗际荍ava類中的Object類的子類。Object類是java中的繼承樹的根。 |