拷贝对象全为可变数据类型
浅拷贝:第一层引用改变,里层不管是可变数据类型或者不可变数据类型,引用都不改变。
深拷贝:所有引用改变。
拷贝对象全为不可变数据类型
浅拷贝深拷贝引用均不变。
拷贝对象首层为可变数据类型,里层为不可变
浅拷贝深拷贝:第一层引用改变,里层都不改变。
拷贝对象首层为不可变数据类型,里层为可变
浅拷贝:引用都不改变。
深拷贝:所有引用改变。
结论
浅拷贝:只需要辨别首层是可变还是不可变数据类型,首层是可变的就改变首层引用,内层都不改变;首层是不可变的,不管内层是什么数据类型,引用全都不改变。
深拷贝:只要元素含有可变数据类型,该元素引用就改变