浅拷贝:只复制对象的引用,被复制的对象仍然指向原来的对象,占用同一块内存;
Map<String, String> dataMap = new HashMap<>();
dataMap.put("A","1");
Map<String, String> dataMapCopy = dataMap;
dataMapCopy.put("A","2");
System.out.println("A: " + dataMap.get("A"));
System.out.println("A: " + dataMapCopy.get("A"));
输出:
A:2
A:2
深拷贝:复制对象的所有基本数据类型的成员变量值,为新的对象开辟内存空间;
Map<String, String> dataMap = new HashMap<>();
dataMap.put("A","1");
Map<String, String> dataMapCopy = new HashMap<>();
dataMapCopy.putAll(dataMap);
dataMapCopy.put("A","2");
System.out.println("A: " + dataMap.get("A"));
System.out.println("A: " + dataMapCopy.get("A"));
输出:
A:1
A:2