赋值、浅拷贝和深拷贝
赋值
赋值是将某一数值或对象赋值给某个变量的过程
- 基本数据类型:赋值,赋值之后两个变量互不影响
- 引用数据类型:赋址,两个变量具有相同的引用,指向同一个对象,相互之间有影响
浅拷贝
创建一个新的对象,该对象有着原始对象属性值的一份精准拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址,如果其中一个对象改变了该地址,那么另外一个对象也会被影响到。(简单来说浅拷贝就是较浅层次的赋值)
深拷贝
深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象被一起拷贝时即发生深拷贝。深拷贝相对于浅拷贝速度较慢而且花销较大。深拷贝之后的两个对象互不影响。
总结
简单来说浅拷贝就是较浅层次的赋值,而深拷贝会连同内存也一起拷贝。