首頁 >常見問題 >值傳遞和引用傳遞的區別

值傳遞和引用傳遞的區別

(*-*)浩
(*-*)浩原創
2019-12-10 11:50:2418456瀏覽

值傳遞和引用傳遞的區別

值傳遞是指基本資料型別在方法中的傳遞,引用傳遞是指引用資料型別在方法中的傳遞。

舉例來說,如下圖程序代碼運行所示:                      (推薦學習:web前端視頻教程

值傳遞和引用傳遞的區別

註:int屬於基本資料型,因此在方法中傳遞與引用時,並不會改變該變數的數值

而arr屬於陣列,是引用資料類型,因此在方法引用時,實際傳遞的是該數組在堆內存中的物理內存地址,在方法中對該數組進行操作,則會影響到該數組內部的數值,會發生變化

原因:

在java中,基本資料型別作為參數傳遞的時候叫做值傳遞,傳的是值本身,

值傳遞:值在這個方法中改變屬於局部變數改變

當出了該方法就沒有作用了(方法中的傳遞的基本資料型別就屬於局部變數)

#在java中,方法的傳參,引用資料類型,傳的是物理記憶體位址值,當方法中對數組內部的數值進行改變時,並未改變該數組的物理記憶體位址,所以當返回到主方法中,陣列還是指向原來的位址。

當傳入arr數組在記憶體中的位址值後,堆記憶體中的連續位址改變,可以影響陣列整體

特例:String /基本資料型別包裝類,雖然都是引用資料型,但是在發生傳參的時候,它們傳的是值

以上是值傳遞和引用傳遞的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn