中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中到底是值傳遞還是引用傳遞

發布時間:2022-01-06 17:10:00 來源:億速云 閱讀:134 作者:柒染 欄目:云計算

今天就跟大家聊聊有關Java中到底是值傳遞還是引用傳遞,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

最近,我在 stackoverflow 上,看到了一個有意思的題目。Java 中到底是“值傳遞”還是“引用傳遞”?

Java中到底是值傳遞還是引用傳遞

回答數很多,點贊數也很多。很快就吸引了我的注意力!


通過我個人對通篇文章的閱讀,得出了 3 個普遍被大家誤導的錯誤!


錯誤1:值傳遞和引用傳遞,區分的條件是傳遞的內容,如果是個值,就是值傳遞。如果是個引用,就是引用傳遞。 


錯誤2:Java 是引用傳遞。 


錯誤3:傳遞的參數如果是普通類型,那就是值傳遞,如果是對象,那就是引用傳遞。

實際上,Java 中只有“值傳遞”!這并不是我一家之言,而是眾多 stackoverflow 上眾多網友的討論的結果!


Java中到底是值傳遞還是引用傳遞

我選擇了一個比較經典的答案,整理給大家!


Java中到底是值傳遞還是引用傳遞

最重要的一點理解是 Dog myDog,它實際上是指向“Dog”的指針。當我們調用 foo(myDog) 的時候,你實際上是將創建的對象的地址傳遞 Dog 給 foo 方法。

注意,Java 中的指針不是指地址。

現在假設 Dog 對象駐留在內存地址 是 42。這意味著我們將 42 傳遞給該方法。

參數 someDog 設置為值 42,在代碼 “AAA” 處,someDog 跟隨 Dog,它指向(Dog 地址 42 處的對象),要求Dog(地址為 42 的那個)將他的名字改為 Max。

在代碼“BBB” 處,Dog 創建了一個新的。假設它所在地址是 74,我們將參數分配 someDog 給 74。

在代碼“CCC” 處,someDog 跟隨 Dog 它指向(Dog 地址 74 處的對象),要求 Dog(地址為 74 的那個)將他的名字改為 Rowlf。

然后,return 了。


Java 的工作方式與 C 完全相同。您可以分配指針,將指針傳遞給方法,按照方法中的指針操作并更改指向的數據。但是,您無法更改指針指向的位置。

Java 總是按值而不是通過引用傳遞參數。Java 把引用的地址當做值進行了傳遞,這么說,你應該就明白了!

看完上述內容,你們對Java中到底是值傳遞還是引用傳遞有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鄂托克前旗| 辽宁省| 洪江市| 银川市| 高尔夫| 肇源县| 治多县| 汨罗市| 涞源县| 梅州市| 萨嘎县| 濉溪县| 绥江县| 兴化市| 平武县| 大城县| 明水县| 长汀县| 巧家县| 石河子市| 西吉县| 嘉定区| 金乡县| 宁武县| 泰来县| 拜泉县| 宜兰县| 岑巩县| 增城市| 抚松县| 阿克| 临潭县| 康马县| 桂东县| 黑山县| 吉木萨尔县| 堆龙德庆县| 康定县| 潞城市| 威海市| 马尔康县|