标签:
public static void main(String[] args) { Person p = new Person("tom","15"); Map<String,Person> map2 = new HashMap<>(); Map<String,Person> map3 = new HashMap<>(); map2.put("m2", p); map3.put("m3", p); p.setName("jerry"); System.out.println(map2.get("m2")); System.out.println(map3.get("m3")); }
如上代码,类Person有两个属性,name和age,在放到map后,如果改变其中一个属性的值,map中已经存放进去的数据会受到影响.
public static void main(String[] args) { String p = "a"; Map<String,String> map2 = new HashMap<>(); Map<String,String> map3 = new HashMap<>(); map2.put("m2", p); map3.put("m3", p); p = "ss"; System.out.println(map2.get("m2")); System.out.println(map3.get("m3")); }
但是如果放进去的不是个普通对象,String或者基本类型封装类,那么就不会受到影响.
需要找到合理解释。// TODO
标签:
原文地址:http://www.cnblogs.com/havenenjoy/p/4684209.html