本文目錄一覽:
java到底是值傳遞還是引用傳遞
java中方法參數傳遞方式是按值傳遞。所謂值傳遞,就是將實際參數值的副本(複製品)傳入方法內,而自己本身不會受到任何影響。
如果參數是基本類型,傳遞的是基本類型的字面量值的拷貝。
如果參數是引用類型,傳遞的是該參量所引用的對象在堆中地址值的拷貝。
java中的引用傳遞是什麼?
值傳遞:(形式參數類型是基本數據類型):
方法調用時,實際參數把它的值傳遞給對應的形式參數,形式參數只是用實際參數的值初始化自己的存儲單元內容,是兩個不同的存儲單元,所以方法執行中形式參數值的改變不影響實際參數的值。
引用傳遞:(形式參數類型是引用數據類型參數):也稱為傳地址。
方法調用時,實際參數是對象(或數組),這時實際參數與形式參數指向同一個地址,在方法執行中,對形式參數的操作實際上就是對實際參數的操作,這個結果在方法結束後被保留了下來,所以方法執行中形式參數的改變將會影響實際參數。
java引用傳遞怎麼用
String類型的傳遞是引用傳遞。也即是地址傳遞。傳的是str的地址。把str里“good”的地址傳給change()方法里的str。change()里的str賦予新的地址。是“testok”的地址。此時ex.str對“good”的引用沒變。就是還是存放“good”的地址。所以。ex.str還是“good”基本數據類型傳遞的是值。但是數組類型是引用類型。傳的也是ch的中{‘a’,‘b’,‘c’}的地址。ch[0]修改為‘g’。基本數據類型的修改改的是其值。所以change()中ch接受傳來的ex.ch的地址,指向{‘a’,‘b’,‘c’},修改其中的ch[0]後。修改保持。ex.ch引用不變。變為{‘g’,‘b’,‘c’}要想修改它們的值,change()傳的是Exampleechange(Examplee){e.str=“testok”;e.ch[0]=’g’;}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/303656.html