浅拷贝:
只复制对象的引用,两个引用仍然指向同一个对象,在内存中占用同一块内存;(拷贝对象的值受原对象的影响)
深拷贝:
引用对象和原对象的引用类型指向不同对象。(拷贝对象的值不受原对象的影响)
例子:748题中
此处必须用深拷贝,不能使用
tmp = hash;//如果这样写,每次都会被原来的对象所影响。
=============================================
也可以使用putall实现深拷贝,但是只能用hashmap,如果是map的话是浅拷贝
HashMap<String, String> paramMap2 = new HashMap<String, String>();
实现浅拷贝的方式有两种:=和Map.putAll();
实现深拷贝:HashMap.putAll()。
题外话:
java中的clone()函数,复制的是对象的引用,是无法直接得到一个对象的副本的,如果想要对实体类进行复制的前提是:
1、实现Cloneable接口
2、覆盖clone()方法,可见性提升为public;