请高手帮忙解释一下,为什么输出结果是2?
import java.util.*;
public class Test{
public Test() {}
static void print(ArrayList al){
al.add(2);
al = new ArrayList();
al.add(3);
al.add(4);
}
public static void main(String[] args) {
Test test = new Test();
ArrayList al = new ArrayList();
al.add(1);
test.print(al);
System.out.println(al.get(1));
}
}
import java.util.*;
public class Test{
public Test() {}
static void print(ArrayList al){
al.add(2);
al = new ArrayList();
al.add(3);
al.add(4);
}
public static void main(String[] args) {
Test test = new Test();
ArrayList al = new ArrayList();
al.add(1);
test.print(al);
System.out.println(al.get(1));
}
}
static void print(ArrayList al){
al.add(2); // 在al里添加一个项目 al(1)=2
al = new ArrayList(); // 重设变量,仅在方法内部有效
al.add(3); // 忽略
al.add(4); // 忽略
}
public static void main(String[] args) {
Test test = new Test();
ArrayList al = new ArrayList();
al.add(1); // al(0)=1
test.print(al); //al(0)=1 al(1)=2
System.out.println(al.get(1));
}
get 1=2
然后
al = new ArrayList();
al.add(3);
al.add(4);
和main函数里面的al没关系的
方法里面做的逻辑并没对main里面的参数产生影响
main a1 --> 1,2 参数a1 --> 3,4
System.out.println(al.get(1)); main中的a1 的第二个元素 2