天天看點

Java裡到底是引用傳遞還是值傳遞

Java裡 隻要傳參。傳的就是變量存的值。而不是 變量本身的位址

 (傳引用是指傳變量本身的位址,注意是變量本身的位址!!!)

請百度  “引用傳遞” 看看百科是怎麼解釋這個概念的。

舉個例子   Dog aDog = new Dog();

aDog本身有一個位址0001, 0001裡存的是  類執行個體 (new Dog())的位址  1110。傳參時如果傳的是0001,那麼傳的就是引用,可惜傳的是1110。 

這就是說傳的是0001裡存放的值!!!

不過1110是類執行個體的位址,就是說 1110是對象new Dog()的引用。 

是以我們可以  說成是  “傳的是對象的引用” 而不是  “變量本身的引用”。

這有點偷換概念的味道。  傳值還是傳引用   我們是針對

變量本身而言的。 傳的是變量本身的位址,還是變量的值。 

因為我們問的是傳參數的時候,傳的是參數的引用還是參數的值?

說成是  “傳的是對象的引用”有點牽強,答非所問。雖然的确沒有說錯,但是很容易讓人誤解。