java值傳遞幾個注意點

  例子:

   public static void main(String[] args) {

        StringBuffer stra = new StringBuffer("A");
        StringBuffer strb = new StringBuffer("B");
        changed(stra, strb);

        System.out.println(stra + " " + strb);
    }

    public static void changed(StringBuffer a, StringBuffer b) {

        b.append(a);

        a = new StringBuffer("C");

    }


1.值傳遞的本質是纔在傳遞引用類型的參數時,傳的並非值的本身,而是該值的所在地址。

2.值傳遞過程中,對形參的值做修改,實參的值也會發生同樣的改變。

3.這點我認爲比較容易混淆,在值傳遞過程中,形參和實參是兩個對象,只是兩個對象同時引用一個地址,當對其中一個對象做修改的時候,

另一個對象也會發生同樣的修改(前面這段我相信大家都比較明白),容易混淆的是,當改變其中一個對象的引用地址時,那麼這兩個對象就已經沒有關聯了,

不要認爲另一個對象跟着改變引用地址。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章