java的值传递
結(jié)論
java只有值傳遞,沒(méi)有引用傳遞
什么是值傳遞?
值傳遞(pass by value)是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)復(fù)制一份傳遞到函數(shù)中,這樣在函數(shù)中如果對(duì)參數(shù)進(jìn)行修改,將不會(huì)影響到實(shí)際參數(shù)。
重點(diǎn)是“復(fù)制”
什么是引用傳遞?
引用傳遞(pass by reference)是指在調(diào)用函數(shù)時(shí)將實(shí)際參數(shù)的地址直接傳遞到函數(shù)中,那么在函數(shù)中對(duì)參數(shù)所進(jìn)行的修改,將影響到實(shí)際參數(shù)。
重點(diǎn)是“直接傳遞”
辨析
值傳遞和引用傳遞區(qū)別的重點(diǎn)是傳遞參數(shù)是否是拷貝。
java只有值傳遞(復(fù)制傳遞的參數(shù)),傳遞的參數(shù)是引用類型時(shí),也是值傳遞,因?yàn)閭鞯氖且弥档目截?#xff0c;并不是直接將引用值傳遞過(guò)去。
模擬場(chǎng)景:朋友去你家玩,你把鑰匙(相當(dāng)于引用,指向房子對(duì)象)復(fù)制一份給他,屬于值傳遞;你把鑰匙直接給他,屬于引用傳遞。無(wú)論哪種方式,他都可以進(jìn)入房子(對(duì)象),改變室內(nèi)的東西(屬性)。
錯(cuò)誤理解:傳遞的參數(shù)如果是普通類型,那就是值傳遞,如果是對(duì)象,那就是引用傳遞。
借鑒鏈接:https://blog.csdn.net/bjweimengshu/article/details/79799485?utm_source=app&app_version=4.5.8
總結(jié)
- 上一篇: equals和hashCode
- 下一篇: springboot项目中pom.xml