1、深拷贝
通过以下代码进行理解
import java.util.ArrayList;
import java.util.List;
public class Demo {
public static void main(String[] args) {
List<Integer> c = new ArrayList<>();
c.add(1);
c.add(2);
c.add(3);
List<Integer> 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<Integer> c = new ArrayList<>();
c.add(1);
c.add(2);
c.add(3);
c.add(4);
c.add(5);
System.out.println(c);
List<Integer> c1 = c.subList(2,5);
System.out.println(c1);
List<Integer> c2 = Collections.singletonList(c1.set(2, 99));
System.out.println(c1);
System.out.println(c);
}
}
输出结果为:
submit进行的是浅拷贝,因此c的值也会进行改变