值傳遞和引用傳遞: 值傳遞和引用傳遞的區別並不是傳遞的內容。而是實參到底有沒有被覆制一份給形參。在判斷實參內容有沒有受影響的時候,要看傳的的是什麼,如果你傳遞的是個地址,那麼就看這個地址的變化會不會有影響,而不是看地址指向的對象的變化。 Java中當傳遞的參數是對象時,其實還是值傳遞的,只不過對於對 ...
值傳遞和引用傳遞:
值傳遞和引用傳遞的區別並不是傳遞的內容。而是實參到底有沒有被覆制一份給形參。在判斷實參內容有沒有受影響的時候,要看傳的的是什麼,如果你傳遞的是個地址,那麼就看這個地址的變化會不會有影響,而不是看地址指向的對象的變化。
Java中當傳遞的參數是對象時,其實還是值傳遞的,只不過對於對象參數,值的內容是對象的引用。當調用方法改變對象引用(即傳遞的值)時,如指向另一個對象時,原對象是不發生任何變換的,而當改變的不是傳遞過來的值---對象的引用,而是通過引用直接操作對象,則原對象的值肯定會發生改變,因為引用沒變,都是指向的同一個對象。但是這裡本質不是引用傳遞,而是值傳遞,因為若是引用傳遞的話改變形參的引用則原對象的引用也要發生改變即原對象要發生改變,而上面已經介紹當調用函數改變形參對象引用是實參對象是不會發生任何變換的。
詳細解釋請查看這篇博文,我覺得寫得很好!
https://blog.csdn.net/bjweimengshu/article/details/79799485