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