1. 程式人生 > >Java傳參-基本資料型別和引用資料型別作為引數的區別(值傳遞)

Java傳參-基本資料型別和引用資料型別作為引數的區別(值傳遞)

java中的方法可以傳遞引數,引數的傳遞方法就是值傳遞。

引數有形參和實參,定義方法時寫的引數叫形參,真正呼叫方法時,傳遞的引數叫實參。

呼叫方法時,會把實參傳遞給形參,方法內部其實是在使用形參。

所謂值傳遞就是當引數是基本型別時,傳遞引數的值,比如傳遞i=10,真實傳參時,把10賦值給了形參。

當引數是物件時,傳遞的是物件的值,也就是物件的首地址。就是把物件的地址賦值給形參。

基本型別當做方法的形參時

當引用型別當做引數的形參時

基本資料型別和引用資料型別作為引數的區別
基本資料型別的變數中直接存放資料值本身,所以改的時候改的是資料值本身;
但是引用型別不同的地方在於真正的資料並沒有在棧區

的變數中儲存,而是在堆區裡面儲存著,所以雖然也拷貝了一份,也是副本,但是二者指向的是同一塊堆區。

引用資料型別就好比如說,兩位同學使用的是同一份複習資料,其中一人把資料撕毀了,另一人當然也會受到影響。
而基本資料型別就好比影印了一份,其中一人將自己的資料撕了,並不影響別人。

總結:
1).當使用基本資料型別作為方法的形參時,在方法體中對形參的修改不會影響到實參的數值
2).當使用引用資料型別作為方法的形參時,若在方法體中修改形參指向的資料內容,則
* 對實參變數的數值產生影響,因為形參變數和實參變數共享同一塊堆區;*
3).當使用引用資料型別作為方法的形參時,若在方法體中修改形參變數的指向,此時不會


* 對實參變數的數值產生影響,因此形參變數和實參變數分別指向不同的堆區;*