傳參數:基本類型和對象引用

public class Pets {

    public static void printPets() {
        ArrayList<String> arr = new ArrayList<>();
        arr.add("111");
        arr.add("222");
        favourtePets(arr);
        System.out.println(arr);
    }

    private static void favourtePets(ArrayList arr) {
        ArrayList<String> arrNew = new ArrayList<>();
        arrNew.add("333");
        arrNew.add("444");
        arrNew.add("555");
        arr = arrNew;
    }

    public static void main(String[] args) {
        printPets();
        //輸出結果:[111, 222]
        //緣由是:參數是基本類型值傳遞,對象的引用傳遞,實際上是複製棧上地址(和基本類型相似)
            //那麼favourtePets方法內部的arr 僅僅是原對象引用值的一份拷貝,指向原隊列的地址的副本,能夠操做原隊列,增刪改
            //可是對參數的修改不會影響到原有值

    }
}
相關文章
相關標籤/搜索