死磕面試系列,Java到底是值傳遞還是引用傳遞?( 二 )

輸出結果:
update方法中user:User(id=1)main方法中user:User(id=1)可以看出update方法修改user對象的屬性,main方法中user對象也跟著變了 。

死磕面試系列,Java到底是值傳遞還是引用傳遞?

文章插圖
這是不是說明Java支持引用傳遞呢?
并不是 。這里在參數傳遞的過程中,只是把實參的地址拷貝了一份傳遞給形參 , update方法中只修改了參數地址里面的內容,并沒有對形參本身進行修改 。
4. 總結經過上述分析,Java參數傳遞中 , 不管傳遞的是基本數據類型還是引用類型,都是值傳遞 。
當傳遞基本數據類型,比如原始類型(int、long、char等)、包裝類型(Integer、Long、String等),實參和形參都是存儲在不同的棧幀內,修改形參的棧幀數據,不會影響實參的數據 。
當傳參的引用類型,形參和實參指向同一個地址的時候,修改形參地址的內容,會影響到實參 。當形參和實參指向不同的地址的時候 , 修改形參地址的內容,并不會影響到實參 。
我是「一燈架構」,如果本文對你有幫助,歡迎各位小伙伴點贊、評論和關注,感謝各位老鐵,我們下期見

死磕面試系列,Java到底是值傳遞還是引用傳遞?

文章插圖
【死磕面試系列,Java到底是值傳遞還是引用傳遞?】

推薦閱讀