深拷贝和浅拷贝的区别?

     浅拷贝是指源对象与拷贝对象共用一份实体,仅仅是引用的变量不同(名称不同)。浅拷贝是指针拷贝,对其中任何一个对象的改动都会影响另外一个对象。

    举个例子,一个人一开始叫张三,后来改名叫李四了,可是还是同一个人,不管是张三缺胳膊少腿还是李四缺胳膊少腿,都是这个人倒霉。

 

    深拷贝是指源对象与拷贝对象互相独立,深拷贝不但对指针拷贝还对指针指向的内容进行拷贝,其中任何一个对象的改动都不会对另 外一个对象造成影响。

     举个例子,一个人名叫张三,后来用他克隆(假设法律允许)了另外一个人,叫李四,不管是张三缺胳膊少腿还是李四缺胳膊少腿都不会影响另外一个人。比较典型的就是Value(值)对象,如预定义类型Int32,Double,以及结构(struct),枚举(Enum)等。

posted @ 2016-06-09 18:35  文健博客  阅读(153)  评论(0编辑  收藏  举报