Java引用傳遞是值傳遞

篇首語:Java基本類型傳遞的是值的拷貝,Java引用類型傳遞的是對象地址的拷貝。


在java中,java是通過值傳遞的。


按值傳遞
Java值調(diào)用方式

基本類型是傳遞的值本身的一個(gè)副本。副本中的值的改變不會影響原來值的改變。如圖所示:

代碼
運(yùn)行結(jié)果

內(nèi)存示意圖:


引用類型傳遞是拷貝傳遞對象地址。

拷貝對象的引用

傳遞的對象改變地址的時(shí)候,不影響原對象的地址。但是傳遞對象進(jìn)行內(nèi)部組成的時(shí)候,原數(shù)據(jù)也會改變。具體如圖:

圖一可以看出改變副本的地址的時(shí)候,原數(shù)據(jù)地址不會改變。

運(yùn)行結(jié)果(一)

圖二可以看出,副本改變對象的屬性的時(shí)候,源數(shù)據(jù)跟著改變。

運(yùn)行結(jié)果(二)
內(nèi)存示意

總結(jié)如下:(來自《Java核心技術(shù)》)

*一個(gè)方法不能修改一個(gè)基本數(shù)據(jù)類型的參數(shù)(即數(shù)值或布爾型)。

*一個(gè)方法可以改變一個(gè)對象參數(shù)的狀態(tài)。

*一個(gè)方法不能讓對象參數(shù)引用一個(gè)新的對象。

*******************

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 當(dāng)一個(gè)對象被當(dāng)作參數(shù)傳遞到一個(gè)方法后,在此方法內(nèi)可以改變這個(gè)對象的屬性,那么這里到底是值傳遞還是引用傳遞?答:ja...
    杜子龍閱讀 408評論 0 0
  • 學(xué)過Java基礎(chǔ)的人都知道:值傳遞和引用傳遞是初次接觸Java時(shí)的一個(gè)難點(diǎn),有時(shí)候記得了語法卻記不得怎么實(shí)際運(yùn)用,...
    為愛放棄一切閱讀 447評論 0 6
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,674評論 1 32
  • 國學(xué)大家許倬云35萬字巨著,內(nèi)容包羅萬象,既講歷史變遷,更論文化形成,既闡述王朝興衰,也對平民生活多有涉及,...
    振濤_老鷹中尉閱讀 811評論 0 9
  • 下午都在糾結(jié)怎么改造原先的虛擬機(jī)平臺,下班前還是決定在目前經(jīng)費(fèi)緊張的情況下,暫不升級,充分利用現(xiàn)有資源,先用限制固...
    512song閱讀 182評論 0 0

友情鏈接更多精彩內(nèi)容