请先看下面的代码,非常简单:
public static void main(String[] args) {
int i = 1;
plus(i);
System.out.println(i); [b]// 打印 1[/b]
Map map = new HashMap();
map.put("orange", "ORANGE");
addOneEntry(map);
System.out.println(map); [b]// 打印 {orange=ORANGE, apple=APPLE}[/b]}
private static void plus(int i){
i += 1;
}
private static void addOneEntry(Map map){
map.put("apple", "APPLE");
}
我的问题就在这里,我的map变量定义在main方法内,按理说它应该是局部变量,但为什么它还会受addOneEntry()方法的影响,出了这个方法后还会增加多一个entry?就好像它是静态变量一样...
我试过int,String,数组和自定义类型的变量,他们的作用范围都只限于声明它们的方法内,为什么Map(List也一样)类型的变量会这样?
谢谢各位大虾!