以下代码的运行结果是?
public static void main(String[] args) {
List<Car> a1 = new ArrayList<>();
List<Car> a2 = new ArrayList<>();
Car c = new Car();
c.setId(1);
a1.add(c);
a2.add(c);
a1.get(0).setId(2);
System.out.println(a2.get(0).getId());
}
浅拷贝
总结:
浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,
使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。
浅复制:仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。
深复制:在计算机中开辟一块新的内存地址用于存放复制的对象。