浅拷贝和深拷贝的区别
总结:
浅拷贝:
- 浅拷贝只做最顶层的数据类型判断
- 如果顶层是可变类型则创建新的内存空间
- 如果顶层是不可变数据类型就是引用拷贝
深拷贝:
- 深拷贝做递归拷贝,可以递归拷贝所有的内部嵌套数据(可以理解为循环遍历做浅拷贝判断)
- 深拷贝递归拷贝遇到可变类型则创建新的内存空间
- 深拷贝递归拷贝遇到不可变数据类型就是拷贝的引用
浅拷贝:
- 浅拷贝只做最顶层的数据类型判断
- 如果顶层是可变类型则创建新的内存空间
- 如果顶层是不可变数据类型就是引用拷贝
深拷贝:
- 深拷贝做递归拷贝,可以递归拷贝所有的内部嵌套数据(可以理解为循环遍历做浅拷贝判断)
- 深拷贝递归拷贝遇到可变类型则创建新的内存空间
- 深拷贝递归拷贝遇到不可变数据类型就是拷贝的引用