iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
Software Development

Java基礎筆記系列 第 5

Java的傳值與傳址的值

  • 分享至 

  • xImage
  •  

在Java中呼叫方法或傳遞參數時,可分為兩種方式被傳遞,分別是「傳值」、「傳址」。

傳值 (Pass By Value)

「傳值」是將變數的值複製一份給方法用,方法獲得的是複製品,而非原始資料。當傳入的參數是八大基本資料型別時,像是int,方法裡面對參數的改變,並不會影響到原本方法外變數的值。

傳址 (Pass By Reference的概念)

「傳址」的字面解釋似乎是傳遞記憶體位址,但實際上是將記憶體位址參考的值傳遞給方法,此參考指向的是物件記憶體位置,因此並不是直接將記憶體位址傳遞。

當傳入的參數若是物件參考變數或陣列,就可以修改指向物件的變數值,也可使用指向物件的其他方法與變數,但因為是共用同個物件實體,要留意資料連動產生的變化。

例如myPen和yourPen是兩個參考變數,原本指向不同的物件。但若進行 myPen = yourPen 操作,myPen 就會指向 yourPen 所指的那個物件,這時兩者的記憶體位址會是一樣,而原本的 yourPen 物件,若沒有其他變數再被使用,那麼該物件就會被視為「垃圾」,Java會清理此類無用物件。


上一篇
Java的三種等於
下一篇
Java的三種基本迴圈:for , while , do...while
系列文
Java基礎筆記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言