JavaSE 核心知识点梳理
一、面向对象
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 (, , address);
(Person) person1.clone();
System.out.println(person1.address == person2.address);
}
}


