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