深入浅出带你理解Java中数组的浅拷贝和深拷贝
深浅拷贝的区别
所谓浅拷贝,一般指的就是对象引用,例如
Teacher teacher = new Teacher();
teacher.setName("riemann");
teacher.setAge(28);
Teacher teacher1 = teacher;
这里的teacher1就是对teacher的浅拷贝。
而深拷贝,指的是实现了Cloneable接口的对象的拷贝, 拷贝出来的对象和原对象不是同一个。
总结一下:
深拷贝 | 浅拷贝 |
---|---|
需要实现cloneable接口并重写clone方法 | 不需要 |
== 判断时不同 | ==判断时相同 |
equals方法判断相同 | equals方法判断相同 |
改变属性对被克隆对象没影响 | 改变克隆属性对克隆对象有影响 |
参考文章: