Java深拷贝和浅拷贝如何实现

   2025-02-05 4420
核心提示:Java中深拷贝和浅拷贝的实现方式如下:浅拷贝:浅拷贝是指创建一个新对象,然后将原对象的非静态字段的值复制给新对象。新对象和

Java中深拷贝和浅拷贝的实现方式如下:

浅拷贝:浅拷贝是指创建一个新对象,然后将原对象的非静态字段的值复制给新对象。新对象和原对象共享相同的引用类型字段。浅拷贝可以使用Object类的clone()方法实现,需要实现Cloneable接口,并重写clone()方法。示例代码如下:
public class MyClass implements Cloneable {    private int value;    private List<String> list;    public MyClass(int value, List<String> list) {        this.value = value;        this.list = list;    }    @Override    protected Object clone() throws CloneNotSupportedException {        MyClass clone = (MyClass) super.clone();        clone.list = new ArrayList<>(list);        return clone;    }}
深拷贝:深拷贝是指创建一个新对象,然后将原对象的所有字段的值复制给新对象,包括引用类型的字段。深拷贝需要手动递归复制引用类型的字段。示例代码如下:
public class MyClass {    private int value;    private List<String> list;    public MyClass(int value, List<String> list) {        this.value = value;        this.list = list;    }    public MyClass(MyClass other) {        this.value = other.value;        this.list = new ArrayList<>(other.list);    }}

以上是两种常见的深拷贝和浅拷贝的实现方式,根据具体的需求和场景选择合适的方式。

 
 
更多>同类维修知识
推荐图文
推荐维修知识
点击排行
网站首页  |  关于我们  |  联系方式  |  用户协议  |  隐私政策  |  网站留言