1、深拷贝

通过以下代码进行理解

import java.util.ArrayList;

import java.util.List;

 

public class Demo {

    public static void main(String[] args) {

        List c = new ArrayList<>();

        c.add(1);

        c.add(2);

        c.add(3);

 

        List c1 = new ArrayList<>(c);//深拷贝

        System.out.println(c);

        System.out.println(c1);

    }

}

输出结果为:(c和c1输出的结果相同)

        

2、浅拷贝

 通过以下代码进行理解    

import java.util.ArrayList;

import java.util.Collections;

import java.util.List;

 

public class Demo {

    public static void main(String[] args) {

        List c = new ArrayList<>();

        c.add(1);

        c.add(2);

        c.add(3);

        c.add(4);

        c.add(5);

 

        System.out.println(c);

        List c1 = c.subList(2,5);

        System.out.println(c1);

        List c2 = Collections.singletonList(c1.set(2, 99));

        System.out.println(c1);

        System.out.println(c);

 

    }

}

 输出结果为:  

submit进行的是浅拷贝,因此c的值也会进行改变

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。