Map map1 = new HashMap();
//map1.put("1",1);
Map map2 = new HashMap();
map2 = map1;
map1.put("1", 3);
Map map3 = new HashMap();
map1 = map3;
//map1变化,map2也跟着变化。
/* 注释map1创建了对象,map1这个变量存储在栈里面,创建的那个对象存储在堆里,比如说对象的堆内的内存地址是x 那么站里的map1就会记录 map1的值在内存x的位置上;
同理map2=map1 就是在栈里记录了,map2的值的位置跟map1的值的位置一样,也在内存x的位置
然后你操作map2的时候,就是操作内存x位置上的对象,当map2吧对象操作完了,对象还在依然是在内存的x位置,而此时map1的值依然还是在x的位置,所有才会map2改变了对象,map1也跟着改变了
*/
System.out.println(map1); //结果:{}
System.out.println(map2); //{1=3}
System.out.println(map3); //{};
//map发生改变,list也发生了改变
List<Map> list = new ArrayList();
list.add(map1);
for (Map m : list) {
System.out.println(m);
m.put("3", 3);
}
System.out.println(list);//{}版权声明:本文为momo_tianya原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。