2019-08-19

赋值、浅拷贝和深拷贝

赋值

赋值是将某一数值或对象赋值给某个变量的过程

  • 基本数据类型:赋值,赋值之后两个变量互不影响
  • 引用数据类型:赋址,两个变量具有相同的引用,指向同一个对象,相互之间有影响

浅拷贝

创建一个新的对象,该对象有着原始对象属性值的一份精准拷贝。如果属性是基本类型,拷贝的就是基本类型的值,如果属性是引用类型,拷贝的就是内存地址,如果其中一个对象改变了该地址,那么另外一个对象也会被影响到。(简单来说浅拷贝就是较浅层次的赋值)

深拷贝

深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象被一起拷贝时即发生深拷贝。深拷贝相对于浅拷贝速度较慢而且花销较大。深拷贝之后的两个对象互不影响。

总结

简单来说浅拷贝就是较浅层次的赋值,而深拷贝会连同内存也一起拷贝。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容