参数传递容易犯的错误
@Test
public void test05 () {
List<String> old = new ArrayList<String>();
old.add("aaa");
test06(old);
System.out.println(old); // 结果:aaa,bbb
test07(old);
System.out.println(old); // 结果:aaa
}
private void test06 (List<String> list) {
list.add("bbb");
}
private void test07 (List<String> list) {
list = new ArrayList<String>();
list.add("bbb");
}
调用test06:形参list指向old的地址值,修改数据也就是修改old地址值对应的集合
调用test07:形参list起初指向old的地址值,但new ArrayList();之后list指向了一个新的地址值这是赋值是赋给新的地址值和原来的old地址值已经没有关系了。