深拷贝、浅拷贝
2020-06-12 本文已影响0人
bug工程狮
深拷贝、浅拷贝
- 浅拷贝
对象指针的复制,最终都是指向同一个内存地址
- 深拷贝
对象自身的拷贝,产生一个新的内存地址,新老对象指向不同的内存地址
对象 | copy | 结果 | mutableCopy | 结果 | 备注 |
---|---|---|---|---|---|
非容器不可变对象 | 浅拷贝 | 不可变对象 | 深拷贝 | 可变对象 | |
非容器可变对象 | 深拷贝 | 不可变对象 | 深拷贝 | 可变对象 | |
容器不可变对象 | 浅拷贝 | 不可变对象 | 深拷贝 | 可变对象 | 容器中元素的拷贝均为浅拷贝 |
容器可变对象 | 深拷贝 | 不可变对象 | 深拷贝 | 可变对象 | 容器中元素的拷贝均为浅拷贝 |
若要实现容器对象中元素的深拷贝,可以新增方法实现深拷贝