java中的深拷贝和浅拷贝
环境:
Idea:2019.3.1
系统:windows10 家庭版
Jdk: 8
java中文api
拷贝
一. 引用拷贝
二. 对象拷贝
浅拷贝
class Person(){
private Name name;
private Address address;
public Person(Person person){
this.name = person.name;
this.address = person.address;
}
}
这样可以看到,新的person的,Name和Address对象,都是指向旧的Name和Address对象,所以两个person是公用一个name,一个address的,当我们去修改其中一个person的address里面的name后,第二个person的也会改变
深拷贝
class Person(){
private Name name;
private Address address;
public Person(Person person){
this.name = new Name(person.name);
this.address = new Address(person.address);
}
}
这样拷贝出来的person,它的name和address都是新对象,所以两个person是完全不同的两个对象