首頁  >  文章  >  Java  >  java中的引用與c++中的指標的區別

java中的引用與c++中的指標的區別

王林
王林原創
2019-12-31 16:38:262405瀏覽

java中的引用與c++中的指標的區別

Java的引用和C 的指標都是指向一塊記憶體位址的,透過引用或指標來完成對記憶體資料的操作,但是它們在實現,原理作用等方面卻有區別。

(1)類型:引用其值為位址的資料元素,Java封裝了的位址,可以轉換成字串查看,長度也可以不必擔心。 C 指標是一個裝位址的變量,長度一般是電腦字長,可以認為是個int。

免費線上影片教學推薦:java影片教學

(2)所佔記憶體:引用宣告時沒有實體,不佔空間。 C 指標如果宣告之後會用到才會賦值。如果用不到不會分配記憶體。

(3)型別轉換:引用的型別轉換,也可能不成功,執行時拋異常或編譯就不能通過。 C 指標指示個記憶體位址,指向內存,對程式來說還都是一個位址,但可能所指的位址不是程式想要的。

(4)初始值:引用初始值為java關鍵字null。 C 指針是int,如不初始化指針,那它的值就不是固定的了,這很危險。

(5)計算:引用不可以計算。 C 指標是int,他可以計算,如 或--,所以常用指標來取代陣列下標。

(6)記憶體外洩:Java引用不會產生記憶體外洩。 C 指標是容易產生記憶體外洩的,所以程式設計師要小心使用,及時回收。

(7)作為參數:Java的方法參數只是傳值,引用作為參數使用時,會給函數內引用的值的COPY,所以在函數內交換兩個引用參數是沒意義的,因為函數只交換參數的COPY值,但在函數內改變一個引用參數的屬性是有意義的,因為引用參數的COPY所引用的物件時和參考參數是同一個物件。

C 指標作為參數給函數使用,實際上就是它所指的位址在被函數操作,所以函數內使用指標參數的操作都會直接作用到指標所指向的位址(變量,對象,函數等)。

相關文章教學推薦:java入門教學

#

以上是java中的引用與c++中的指標的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn