方法引數的傳遞機制(自學筆記

2021-10-02 05:21:51 字數 1700 閱讀 2314

int,string,integer,arr,類,傳遞引數的時候是怎樣的乙個方式的,期間變數會發生什麼改變。讓我們一起來研究研究。

還是通過**的方式來了解。

其中形參是基本資料型別

實參是應用資料型別

這時候逐漸執行計算**

首先是j += 1;j的值等於j加上1,此時是棧內進行增加,

然後是s += "word";在常量池當中進行l hello 和world的相加生成了乙個新的常量helloworld同時也有乙個與之前不同的位址值,此時的s被賦予乙個新的位址值指向helloworld.

n += 1;與s同理,只是其中的常量池變成了堆,堆中生成了乙個新的值201,同時也被賦予乙個新的位址值,n有了乙個新的位址值指向201.

a[0] += 1;中的位址值指向的是陣列a[0]的值,進行了增加,並未生成新的值。

m.a += 1;同樣也是對堆中的int i=1進行了增加,但是並未改變原始的位址值。

具體可以看下圖。

;最後的 i 結果依然是 1 ;

str的位址值也並未發生改變,所以str的輸出依然是hello;

num與str同理並未發生變化;

arr[0]已經改變了當前陣列位址的值,所以結果變為了2

mydata.a的值也已經發生改變。

故最後的結果為

i=1str=hello

num=200

arr=2

mydata=2

C 方法的引數傳遞機制

值引數 value parameter 方法名稱 引數型別 引數名稱 引數型別 引數名稱 引用引數 reference parameter 方法名稱 ref 引數型別 引數名稱 ref 引數型別 引數名稱 輸出引數 output parameter 方法名稱 out引數型別 引數名稱 out 引數型...

方法的引數值傳遞機制

形參 方法宣告時,方法小括號內的引數 實參 呼叫方法時,實際傳入的引數的值 規則 j a中的引數機制 值傳遞機制 形參是基本資料型別的 將實參的值傳遞給形參的基本資料型別的變數 public class testargstransfer 交換兩個變數的方法 public void swap int ...

Java中方法的引數傳遞機制

public class foo public static void operator stringbuffer x,stringbuffer y 最近看到這道題,網上好多錯誤解答,為防止初學者被誤導,特發文與大家 先說結果 ab,b 關鍵點在於 執行至operator方法時,是將實參a,b的值複...