传参数:基本类型和对象引用

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 仅仅是原对象引用值的一份拷贝,指向原队列的地址的副本,能够操做原队列,增删改
            //可是对参数的修改不会影响到原有值

    }
}
相关文章
相关标签/搜索