深拷贝,浅拷贝和赋值的区别

153 阅读1分钟

(1)深拷贝:从堆内存中开辟一个新的区域存放新的对象,对对象中的子对 象进行递归拷贝,拷贝之后的两个对象相互不影响。
(2)浅拷贝:重新在堆中创建内存,拷贝前后对象的基本数据类型互不影 响,但拷贝前后对象的引用类型共用同一块内存,会相互影响。
(3)赋值:赋的其实是该对象在栈中的地址,而不是堆中的数据,也就是两 个对象指向的是同一个存储空间,无论哪个改变都改变的是存储空间的 内容。