Java的引用傳替

2021-08-25 07:04:18 字數 569 閱讀 1954

public class sample 

private static void add(a objecta)

}class a

結果為:

0

1

字串有點兒意思:

public class sample 

public static void add(string a, string b)

}

結果為:

aaaa

aaaa

這是因為:

"aaaa"和"bbbb"會在堆存放,變數a和b,存的是這個的引用(就可以理解為位址),

呼叫add(a,b)後生成區域性變數a和b。

外面的變數和區域性變數都指向「aaaa」。

執行a=a+b;後,生成字串「aaaabbbb」,

這時區域性變數指向「aaaabbbb」,

外面的變數還指向「aaaa」。

呼叫執行完區域性變數釋放。

外面的變數還指向「aaaa」。

其實這裡的關鍵是:是否生成新的物件。

java引數傳值 傳引用

1 結論 2 傳值和傳引用區別 例項1 傳值 void method1 7 void method2 13 voidchange1 stringbuffer sb 17 voidchange2 stringbuffer sb 呼叫method1 螢幕列印結果為 helloworld 呼叫method...

Java 傳值和傳引用的區別

首先對傳值和傳引用要有個基本的概念 直接上 更好的理解兩者的區別。首先看傳基本資料型別,如int long等。基本資料型別 public class paramchangevalue private static void change int i 輸出 args 1 args 1 從輸出的的結果中...

java傳值與傳引用問題總結

1.基本型別與引用型別區別 對於基本型別 int long short double char byte float boolean 變數直接儲存資料的值 對於引用型別,變數儲存的是物件的位址,由此位址指向實際物件。如圖 對於基本型別,直接傳值,方法裡進行重新賦值不會導致原值改變 public cl...