這篇文章帶給大家的內容是關於Java中值傳遞與引用傳遞(地址傳遞)之間的區別分析(附程式碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。
值傳遞(pass by value)是指在呼叫函數時實際參數複製 一份傳遞到函數中,這樣在函數中如果對參數進行修改,將不會影響到實際參數。傳遞物件往往為整數浮點型字元型等基本資料結構。
public class PassByValueReference { //值传递 public static void main(String[] args) { int x = 9; pass(x); System.out.println(x); } private static void pass(int y) { System.out.println(y); y=0; } }
下為運行結果:(整數y的值變化沒有影響整數x的值)
引用傳遞(pass by reference)是指在呼叫函數時將實際參數的##位址 直接傳遞到函數中,那麼在函數中對參數所進行的修改,將會影響到實際參數。 (類似共同體) 傳遞物件往往為數組等位址資料結構。
public class PassByValueReference { //引用传递 public static void main(String[] args) { int [] x = {9}; System.out.println(x[0]); pass(x); System.out.println(x[0]); } public static void pass(int [] y) { y[0] = 0; } }
public class PassByValueReference { //值传递(赋值非函方式) public static void main(String[] args) { int x = 9; System.out.println(x); y = x; y = 10; System.out.println(x); } }
public class PassByValueReference { //引用传递(赋值非函方式) public static void main(String[] args) { int [] x = {1}; System.out.println(x[0]); int [] y = x; y[0] = 0; System.out.println(x[0]); } }
以上是Java中值傳遞與引用傳遞之間的區別分析(附程式碼)的詳細內容。更多資訊請關注PHP中文網其他相關文章!