91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

宁安市| 合阳县| 新宾| 乾安县| 穆棱市| 漾濞| 精河县| 洛隆县| 禹城市| 大同市| 南江县| 杭锦旗| 南木林县| 新建县| 奇台县| 虎林市| 县级市| 连城县| 鲁甸县| 马公市| 康乐县| 霍林郭勒市| 侯马市| 宁化县| 抚顺县| 同德县| 澄迈县| 渝北区| 泉州市| 广宗县| 屏山县| 洞口县| 扎赉特旗| 庆阳市| 修水县| 金秀| 田东县| 保德县| 永福县| 开鲁县| 灯塔市|