参考文章: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 }
Person

相关文章:

  • 2022-12-23
  • 2021-12-05
  • 2022-12-23
  • 2021-12-27
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-23
  • 2021-06-22
  • 2022-02-19
  • 2022-01-13
  • 2021-11-19
  • 2021-11-23
相关资源
相似解决方案