在Java中,实现对象的克隆有两种方式: 浅拷贝和深拷贝。
- 浅拷贝:通过创建一个新对象,并将原对象的非静态字段值复制给新对象实现。新对象和原对象共享引用数据。在Java中,可以使用clone()方法实现浅拷贝。要实现一个类的克隆操作,需要满足以下条件:
-
- 实现Cloneable接口。
- 重写Object类的clone()方法,声明为public访问权限。
- 在clone()方法中调用super.clone(),并处理引用类型字段。
- 深拷贝:通过创建一个新对象,并将原对象的所有字段值复制给新对象,包括引用类型数据。新对象和原对象拥有独立的引用数据。实现深拷贝有以下方式:
-
- 使用序列化和反序列化实现深拷贝,要求对象及其引用类型字段实现Serializable接口。
- 自定义拷贝方法,递归拷贝引用类型字段。