深拷贝和浅拷贝

浅拷贝:只复制对象中成员变量的值,意味着引用类型的成员变量会把引用地址拷贝过去。

深拷贝:复制对象中的基本数据类型的值,对象中引用的对象也发生深拷贝

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;
  }
}

posted @ 2022-01-02 19:44  月落随山隐  阅读(40)  评论(0)    收藏  举报