Java 深拷贝和浅拷贝
浅拷贝
- 对于基本数据类型的成员对象, 浅拷贝是将属性值赋值给新的对象, 所以其中一个修改, 不会影响另外一个.
- 对于引用数据类型的成员对象, 浅拷贝只是将成员对象的内存地址指向了同一个, 这时改变其中一个的属性值, 另外一个也会跟着改变.
深拷贝
- 在拷贝引用数据类型的成员对象时, 会开辟一个新的独立内存空间, 实现真正意义上的内容拷贝, 拷贝对象和被拷贝对象之间不会互相影响. 但是深拷贝的开销要比浅拷贝要大.
- 深拷贝需要实现
Cloneable
并且重写clone()
方法.