当前位置 博文首页 > 白菜W同学的博客:面试——java——深拷贝和浅拷贝

    白菜W同学的博客:面试——java——深拷贝和浅拷贝

    作者:[db:作者] 时间:2021-07-06 16:35

    一、浅拷贝

    被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对象。”里面的对象“会在原来的对象和它的副本之间共享。
    浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象

    • 比如说,两个引用student1和student2指向不同的两个对象,但是两个引用student1和student2中的两个teacher引用指向的是同一个对象,所以说明是浅拷贝。
      在这里插入图片描述

    二、深拷贝

    深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性,并拷贝属性指向的动态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速度较慢并且花销较大。
    深拷贝把要复制的对象所引用的对象都复制了一遍

    • 比如说,两个引用student1和student2指向不同的两个对象,两个引用student1和student2中的两个teacher引用指向的是两个对象,但对teacher对象的修改只能影响student1对象,所以说是深拷贝。

    在这里插入图片描述

    详细介绍:https://blog.csdn.net/riemann_/article/details/87217229

    cs
    下一篇:没有了