java对象赋值(深拷贝与浅拷贝)


在java中,我们经常会将一个对象赋值给另一个对象,比如

    Student s1 = new Studnet(12,"李四");
    Student s2 = s1;
    s2.setID(36);
    System.out.println(s1+"___"+s2);

当你对对象进行操作,不管是赋值之前还是之后,两个值都会修改,这是因为它们是指向同一个对象,指针不一样。

所以这就涉及深拷贝与浅拷贝,深拷贝就是复制一个对象到一个全新的对象,和之前的对象没有关联;

浅拷贝就是前面提到的直接赋值给另一个对象。

如果想实现深拷贝,就需要自己去实现,比如:

    public class Student(){
        String name;
        int id;
        
        public Student deepClone(){
            Student s = new Student();
            s.id = this.id;
            ...
            return s;
        }
    }

通过deepClone()进行深拷贝。
---------------------
作者:lc14750429
来源:CSDN
原文:https://blog.csdn.net/lc14750429/article/details/88039556
版权声明:本文为博主原创文章,转载请附上博文链接!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM