日期:2014-05-19  浏览次数:20819 次

关于深拷贝与浅拷贝的问题
比如,我写个

A   a   =   (A)b;

这样a就是浅拷贝,直接引用的b的内存,是不是这个意思?

而A   a   =   new   A();
a   =   (A)b;
这样就是深拷贝,因有自己的内存,是不是?

但如果深拷贝的话,自定义对象A类得自己实现   =   的逻辑,实现IClone接口,是不是?

我的概念很乱,请高手指点


------解决方案--------------------
不是的,

浅拷贝是拷贝对象的值类型字段,而引用性字段拷贝的只是引用

深拷贝则是整个引用树整个拷贝
------解决方案--------------------
这么说吧深拷贝后就有了两个互不关联的对象,相同的只是它们的字段取值一样
浅拷贝 假设类没有引用字段,结果同上,如果有 ,那么引用字段拷贝的只是引用,就是说两个对象的引用字段指向的是同一个对象
------解决方案--------------------
A a=new A();
A aa=a.clone();
这就是浅拷贝
------解决方案--------------------
丫,LZ 哪里翻出来的这个答案呢?