参考文章:http://blog.csdn.net/XIAXIA__/article/details/41652057
解决问题:深拷贝、浅拷贝 和普通的对象赋值有什么区别?
对象复制
例如:Person p2 = p1;实质就是对象地址复制。把p1地址赋值给p2。此时二者同时指向一块堆内存,所以改变p1的属性值之后,p2所对应的属性值也会跟着变化。
例如有一个如下所示的Person类:
1 package tudou.javabasic.clone; 2 3 class Person { 4 private int age; 5 private String name; 6 private Address address; 7 8 public Address getAddress() { 9 return address; 10 } 11 12 public void setAddress(Address address) { 13 this.address = address; 14 } 15 16 public Person(int age, String name) { 17 this.age = age; 18 this.name = name; 19 } 20 21 public int getAge() { 22 return age; 23 } 24 25 public void setAge(int age) { 26 this.age = age; 27 } 28 29 public String getName() { 30 return name; 31 } 32 33 public void setName(String name) { 34 this.name = name; 35 } 36 37 @Override 38 public String toString() { 39 return "Person{" + 40 "age=" + age + 41 ", name='" + name + '\'' + 42 '}'; 43 } 44 }