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