關於java中方法的引數的值和引用是否可變

2021-09-11 18:37:24 字數 447 閱讀 9032

物件作為方法的引數,方法中改變物件的引用的話,物件本身的引用是不會變得,而方法內改變物件的屬性的值得話,物件本身的屬性值會改變。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 ...