深拷贝和浅拷贝
浅拷贝:只复制对象中成员变量的值,意味着引用类型的成员变量会把引用地址拷贝过去。
深拷贝:复制对象中的基本数据类型的值,对象中引用的对象也发生深拷贝
class Node{
int a;
String b;
Person p;
#浅拷贝
@Override
protected Node clone() throws CloneNotSupportedException {
Node node=new Node;
node.a=this.a;
node.b=this.b;
node.p=this.p; // copy对象成员的地址
return node;
}
# 深拷贝
@Override
protected Node clone() throws CloneNotSupportedException {
Node node=new Node;
node.a=this.a;
node.b=this.b;
node.p=this.p.clone(); // 作为对象成员的对象也执行clone操作
return node;
}
}
浙公网安备 33010602011771号