浅复制&深复制

    First,先说说这篇博客的来历,当时学习大话设计模式的时候本来没有想要总结深复制和浅复制的念头,因为原型模式那块学的不好,理解的不太清晰,所以就放弃了,But,最近在学习VB.Net视频,视频里有讲到Shallow copy and Deep copy,当时还迷糊,他说的这是个啥,由于认识copy这个词,所以就猜测出来了,也因为这个知识让我对VB.Net视频更有兴趣了。


    Second,来说说Shallow copy and Deep copy的定义和我自己的一些理解。仅供参考微笑


浅复制(Shallow copy:如果字段是值类型的。则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象;因此,原始对象及其副本引用同一对象。即被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然只想原来的对象。只是复制了地址,但是对象本身不属于复制的新对象。



深复制(Deep copy):被复制对象将所有非引用类型的字段复制给新对象,同时将引用类型所指的地址中存的对象复制给新对象。即把引用对象的变量只想复制过得新对象,而不是原有被引用的对象。地址和对象本身都属于复制的新对象。



    我的专业是电子信息科学与技术的,虽然专业课学习的不透彻,但是还是有点懂得大概面的,记得我们专业课上讲过进栈和出栈。此处的栈指的就是地址,所谓地址和咱们的房间也差不多,具体的额一个位置,但是它是抽象化的。进栈和出栈的数据就是所谓的对象,和家里房间的家具什么的相似,浅复制就是别人盖房和你家的图纸是一样的,外表看是一样的,但是内部设置不一样,这就是浅复制。深复制就是完全一样。


    这是我这个阶段对浅复制和深复制的理解,希望有不同理解的小伙伴们提出建议,让我更好的成长。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值