您好,登錄后才能下訂單哦!
這篇文章主要介紹java和c++的區別有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
區別:Java不可以將一個非布爾值當做布爾值在邏輯表達式中使用,C++卻可以。C++引入了操作符重載機制,Java不支持。C++有goto,Java沒有goto。C++中有多繼承,Java中只有單一繼承,但Java可以通過接口實現多繼承。
C++和Java的區別:
盡管Java是基于C++的的,但是相比之下,Java是一種更純粹的面向對象程序設計語言。在Java中,一切都被視為對象。
1、C++創建對象之后,需要再使用完將其調用delete方法將其銷毀;Java有垃圾回收機制,用來監視new出來的所有對象,辨別不會再被引用的對象,然后釋放內存空間。
2、作用域(C、C++、Java的作用域由花括號的位置決定):
但是以下代碼在C和C++中是合法的,在Java中編譯器會報告變量已定義。因為C和C++會將較大作用域的變量隱藏起來,但是Java不允許。
{ int x = 12; { int x = 96; } }
3、基本成員的默認值
當變量作為類的成員使用時,Java才給定默認值,以確保那些基本類型的成員變量得到初始化,但是C++沒有此功能。而對于局部變量,C++編譯器會對其予以警告,Java則會視為錯誤。
4、Java不可以將一個非布爾值當做布爾值在邏輯表達式中使用,C++卻可以。
在C++中表達式的值為0則為假,非0則為真。
例如:
if(1){ }
5、移位操作符
Java中新增了一種“無符號”右移位操作符(>>>),它使用“零擴展”,無論正負,都在高位插入0。這是C、C++中所沒有的。
6、C++引入了操作符重載機制,Java不支持,但是C#中可以實現自己的重載操作符。
7、Java允許我們把任何基本數據類型轉換成別的基本數據類型,除了布爾類型外。【相關視頻教程推薦:Java視頻教程】
8、Java沒有Sizeof()。在C\C++中,sizeof()操作符可以告訴我們為數據項分配的字節數,因為C++中不同的數據類型在不同的機器上可能有不同的大小。但是Java中所有數據類型在所有機器中大小都是相同的。(例如,C++的int在16位機器上為16位,在32及以上為32位,long在32位及以下為32位,在64位上為64位)
9、C++有goto,Java沒有goto。
Java提供了一種類似的跳轉機制:標簽。用法 label:
label1: outer-iteration{ inner-iteration{ break;(1) continue;(2) continue label1;(3) break label1;(4) } }
(1)中,break中斷內部迭代,回到外部迭代
(2)中,continue使執行點移回到內部迭代的起始處。
(3)中,continue label1同時終端內部迭代以及外部迭代,直接轉到label1處;隨后繼續迭代,從外部迭代開始。
(4)break label1 也會中斷所有迭代,并回到label1處,但是不重新進入迭代。即完全終止兩個迭代。
10、C++中析構函數是提供一個在對象刪除前可以釋放這個對象所占用的資源的機會,但是Java并未提供“析構函數”或者類似的概念。 【相關視頻教程推薦:C++視頻教程】
在C++中,對象一定會被銷毀(程序沒有缺陷的情況下);
在Java里,對象卻并非總是被垃圾回收。(垃圾回收并不等于“析構”)
11、名稱屏蔽
如果Java的基類擁有某個已被多次重載的方法名稱,那么在導出類中重新定義該方法名稱并不會屏蔽其在基類中的任何版本。而C++若要在子類中引入一個新的重載方法,則需要屏蔽基類方法。
12、C++中有多繼承,Java中只有單一繼承。Java可以通過接口實現多繼承。
13、Java是半解釋和半編譯的,運行速度比C++慢。
14、Java沒有Struct或者Union
15、Java的泛型不允許使用基本數據類型。
16、數組
在c++中,數組定義時,已經分配存儲空間,并可以使用。 (定義時指定數組大小)
在java中,數組定義時,int arr[],只字義了數組變量,數組是不可以使用的。 只有數組new以后,才會創建數組,分配存儲空間,并可以使用。 (定義時指定數組大小是非法的,創建時指定數組大小)
17、C++有指針,Java沒有。
18、附上C++在32位和64位系統的主要長度對比:
以上是“java和c++的區別有哪些”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。