一、面向对象
1、深拷贝和浅拷贝的区别
在 Java 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)是两种对象拷贝方式,它们在处理引用类型属性时有显著差异。
浅拷贝会创建一个新对象,但属性如果是引用类型,新旧对象共享同一个引用地址。实现方式通常是实现 Cloneable 接口并重写 clone() 方法。
class Person implements Cloneable {
String name;
int age;
Address address;
public Person(String name, int age, Address address) {
this.name = name;
this.age = age;
this.address = address;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
class Address {
String city;
public Address(String city) {
this.city = city;
}
}
public class Main {
public static void main(String[] args) throws CloneNotSupportedException {
Address address = new Address("北京");
Person person1 = new (, , address);
(Person) person1.clone();
System.out.println(person1.address == person2.address);
}
}


