Java方法調用數組,是否改變原數組元素的總結


Java方法調用數組,是否改變原數組元素的總結

//個人理解, 歡迎吐槽

注意String是引用型變量, 我的理解也就是指向型, 指向一個數據或變量, 畫圖理解最容易, string 指向的 數據的值是不可改變的, string類型變量改變時,只是改變指向

例1:

public class test {

    public static void main(String[] args){

        char[] list={'a','b','c','d','e'};

        reverse(list);

        for(int i=0;i<list.length;i++)

            System.out.print(list[i]+" ");

    }

    public static void reverse(char[] list){

        char[] newList=new char[list.length];

        for (int i=0;i<list.length;i++)

            newList[i]=list[list.length-1-i];

        list = newList;

    }

}

  這個例子的答案是主方法的 list 數組沒有受影響,下面我將 reverse 方法中 list 稱為 reverse.list , 主方法的list 為 main.list 加以區分

  調用 reverse 方法時,reverse.list 指向 main.list, 然后 reverse方法中,有一條 list = newList, 則將reverse.list 指向 reverse.newList, 所以該方法不會改變 main.list 的值

例2:

package Java_test;

public class Class432 {
    String m_kobe = "1";
    String [] m_king = {"2"};
    public static void main(String[] args) {
        Class432 app = new Class432();
        app.mb_operate(app.m_kobe, app.m_king);
        System.out.println(app.m_kobe + app.m_king[0]);
    }
    static void mb_operate(String kobe, String [] king) {
        kobe = new String("3");
        king[0] = new String("4");
    }
}

此例輸出為:14


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM