【发布时间】:2012-11-19 23:49:03
【问题描述】:
浅拷贝是指对象的“拷贝”,无论是原始值还是引用值,其属性值都相同。
在执行浅拷贝时是否需要“创建一个新实例”?如:
public class A {
int aValue;
B bObj;
...
public A createShallow(A a1Obj) {
A aObj = new A();
aObj.aValue = a1Obj.aValue;
aObj.bObj = a1Obj.bObj;
return aObj;
}
}
或者通过赋值复制也算是浅拷贝:
B b = new B(10);
A a = new A(1, b);
A a1 = a;
维基百科上的 article 将浅拷贝定义为引用变量共享相同的内存块。所以按这个copy by assignment也会是浅拷贝。
但它不是一个指向同一个对象的变量,而不是一个对象的“复制”吗?
【问题讨论】:
标签: java