一、浅拷贝
浅拷贝: 只是复制最外层的结构,除最外层其余的直接将其地址引用过来,原始数据和拷贝后数据修改会互相影响。
1、定义数据
a作为原始对象,b作为a的浅拷对象,可以看到b是重新开辟了一块内存地址。
2、修改外层结构
修改原始对象a的外层结构,观察b的变化
可以看到a修改了外层结构,但是b并没有改变,所以说只是复制了最外层的结构。
同理修改b也不会影响a:
3、修改内层子对象
修改拷贝对象的内部的子对象[3,4]
发现修改了内层子对象后会互相影响
二、深拷贝
理解了浅拷贝,深拷贝很好理解 。
深拷贝就是在内存中重新开辟一块空间,不管数据结构有多复杂,只要数据发生改变,就重新开辟一块内存空间把内容复制下来,直到最后一层。
两者之间互不影响。