浅拷贝与深拷贝(浅拷贝与深拷贝问题)

网友投稿 792 2022-09-11

浅拷贝与深拷贝(浅拷贝与深拷贝问题)

浅拷贝与深拷贝(浅拷贝与深拷贝问题)

浅拷贝:只复制对象的引用,而不复制对象的结构。此时拷贝对象与被拷贝对象的引用指向同一个对象(也可理解为同一个内存地址),两者之中任一个对象发生变化,另一个对象也会跟着变化。

浅拷贝的用法在System.Collections命名空间中使用的比较多。一方面是因为创建一份大对象的副本对性能有影响;另一方面是因为集合对象类型不一定都是可克隆的,倘若对象中出现循环引用(即类型为T的对象A中存在类型为T的属性/字段)将会导致深拷贝过程出现死循环。

深拷贝:复制对象的结构,使拷贝对象的引用指向复制对象。此时拷贝对象与被拷贝对象的引用指向不同的对象,两者之中任一个发生变化,另一个不受影响。

我们常用的Json序列化与反序列化就是一种深拷贝。

下面用两幅图表示一下深拷贝与浅拷贝的差异:

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Bat系列---【windows11家庭版如何安装hyper-v虚拟机?】
下一篇:常见的问题系列---【解决tomcat端口一直被占用的问题,更换端口也不行】
相关文章

 发表评论

暂时没有评论,来抢沙发吧~