深拷贝和浅拷贝的理解?

来源:互联网 发布:java手机编译器aide 编辑:程序博客网 时间:2024/05/16 15:08

总结:深拷贝拷贝的是内容,浅拷贝拷贝的是指针。深拷贝和浅拷贝最大的区别就是子类对象的地址是否改变,如果子类对象的地址改变那么就是深拷贝。

详细解释:

浅层复制(copy):只复制指向对象的指针,而不复制引用对象本身。通过对象的指针来访问这个对象----只赋值地址

深层复制(mutableCopy):复制引用对象本身---再创建一个对象

意思就是有个A对象,复制一份后得到A_copy对象后,对于浅复制来说,AA_copy指向的是同一个内存资源,复制的只不过是是一个指针,对象本身资源还是只有一份,那如果我们对A_copy执行了修改操作,那么发现A引用的对象同样被修改,这其实违背了我们复制拷贝的一个思想。深复制就好理解了,内存中存在了两份独立对象本身。//当修改A,A copy不变。

原创粉丝点击