引用型別資料和基本型別資料作為引數傳遞是有區別的,
class demo1
public static void show(int a)
}
輸出結果仍為4
基本資料型別作為引數傳遞時,就是將基本型別變數實參a空間中的值傳遞給呼叫的方法
show()
,當在show()
方法中a視為形參,
接受到值後,再在
show()
方法中對
a變數進行操作,這時只會影響到
show
中的形參a。當
show
方法執行完成,彈棧後,程式又回到
main
方法執行,
main
方法中的實參
a值還是原來的值。
當引用資料型別變數作為引數傳遞時,這時其實是將引用變數空間中的記憶體位址(引用
)傳遞給了
show
方法的d
引用變數。這時會有兩個引用同時指向堆中的同乙個物件。當執行
show
方法中的
d.a=6
時,會根據
d所持有的引用找到堆中的物件,並將其
a屬性的值改為
6.show
方法彈棧。
由於是兩個引用指向同乙個物件,不管是哪乙個引用改變了引用的所指向的物件的中的值,其他引用再次使用都是改變後的值。
所以,基本資料型別作為引數傳遞時,形參的改變不影響實參的改變,而引用資料型別作為引數傳遞時,形參改變,實參也相應的做出改變
java 形參 實參
實參 直接值傳遞 string 八大基礎資料型別 形參是定義方法的時候,該方法所攜帶的引數,不如說現在有乙個方法 public void printinfo string info 此處info就是乙個形參,它是string型別的。實參是你在呼叫方法的時候,給這個方法傳遞的引數值,比如說有這麼乙個語...
java形參實參
摘自 一 基本資料型別 傳值,方法不會改變實參的值。如int,string 二 物件型別引數 傳引用,方法體內改變形參引用,不會改變實參的引用 但有可能改變實參物件的屬性值 string陣列 1 方法體內改變形參引用,但不會改變實參引用 實參值不變。2 方法體內,通過引用改變了實際引數物件的內容,注...
Java變數,形參,實參
成員變數定義在類中,在整個類中都可以被訪問。成員變數分為類成員變數和例項成員變數,例項變數存在於物件所在的堆記憶體中,類成員變數也叫靜態變數,存在於靜態域內。成員變數有預設初始化值。成員變數的許可權修飾符可以根據需要,選擇任意乙個。區域性變數只定義在區域性範圍內,如 方法的形參,方法內的變數,塊內的...