深浅拷贝
发布日期:2021-10-06 02:38:18 浏览次数:6 分类:技术文章

本文共 524 字,大约阅读时间需要 1 分钟。

以下代码的运行结果是?

public static void main(String[] args) {
List
a1 = new ArrayList<>(); List
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)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存,

使用深拷贝的情况下,释放内存的时候不会因为出现浅拷贝时释放同一个内存的错误。

浅复制:仅仅是指向被复制的内存地址,如果原地址发生改变,那么浅复制出来的对象也会相应的改变。

深复制:在计算机中开辟一块新的内存地址用于存放复制的对象。

转载地址:https://blog.csdn.net/luxuiary/article/details/105627723 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:foreach抛异常的原因
下一篇:ArrayList和LinkedList的区别?如何选用?

发表评论

最新留言

路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月21日 20时05分11秒