物件作為方法的引數,方法中改變物件的引用的話,物件本身的引用是不會變得,而方法內改變物件的屬性的值得話,物件本身的屬性值會改變。string作為引數,方法中對該引數的值是無法改變的,final修飾的,只能改變它的引用,而改變引數的引用是無效的,所以string作為引數,方法內不管做出什麼改變,string本身不會受影響。
總結:看了一下陣列的記憶體圖,又試了下把陣列作為引數,陣列本身的引用無法改變,而陣列裡的元素可以改變,分析了一下記憶體圖,陣列的引用是棧指向堆的,無法改變,而陣列內的元素的引用是可以改變的,陣列內的元素的引用是堆指向堆,可以改變,所以我覺得方法內可以改變堆對堆的引用,而改變不了棧對堆的引用。
希望大佬對我的觀點做出指點。
Java中方法引數的使用
基本型別的引數完成的是值的拷貝,改變的只是引數的值,並不會改變方法外面變數的值,下面輸出結果還是0 public static void changea int a public static void main string args person為物件引用作為引數,引數拷貝的是這個物件的引用,形...
Java中方法的引數傳遞機制
public class foo public static void operator stringbuffer x,stringbuffer y 最近看到這道題,網上好多錯誤解答,為防止初學者被誤導,特發文與大家 先說結果 ab,b 關鍵點在於 執行至operator方法時,是將實參a,b的值複...
JAVA中方法引數的引用傳遞
當乙個物件被當作引數傳遞到乙個方法 這就是所謂的按引用傳遞。public class user public void setname string name public class test public static void main string args 上面 的輸出結果是 hello ...