求该题解析11111

15、 分析如下 Java 代码,编译运行后将输出 (C)
public class Test{
public Test(){
static void print (ArrayList al) {
al.add(2);
al=new ArrayList ();
al.add(3);
al.add(4);
System.out.print(al);
}
public static void main (String[]args){
Test test=new Test();
ArrayList al=new ArrayList<>();
al.add(1);
print(al);
}
}
A, [1,2]
B, 1,2,3,4]
C. [3,4]
D. [2,3, 4]

先看主方法

public static void main(String[]args){
      //没有运用到省略
    Test test=new Test();
      //实例化了al
    ArrayList al=new ArrayList<>();
    al.add(1);//插入1
    print(al);//带入a1 | a1这时候的值是[1]
}

这里先插入了值,便调用print方法

static void print (ArrayList al) {
    al.add(2); //现在这时候的al的值: [1,2]
      //再次实例化,al的值全部清空
    al=new ArrayList ();//因为这实例化,现在的al没有值
    al.add(3);//插入3
    al.add(4);//插入4 
    System.out.print(al);//输出[3,4]
}

这是我的理解,希望能帮到你