当我遇到下面显示的代码时,我正在研究一些核心Java东西。尽管代码可以成功编译,但是它却提供了一些我无法理解的意外输出。
public static void main(String[] args) {
List a = new ArrayList();
List b = new ArrayList();
addToList(a,b);
System.out.println(a + " " + b);
}
private static void addToList(List a, List b) {
a.add(new Integer("1"));
b.add(new Integer("2"));
a = new ArrayList();
List c = new ArrayList();
b = c;
}
}
此处的输出为:[1][2]
。但是,根据我对通过引用传递对象的知识,输出应为[][]
。这怎么发生的?谁能解释?