# 赋值和深/浅拷贝的区别

浅拷贝：

*   在堆内存中为新对象重新创建内存空间。
*   基本数据类型的值被直接拷贝，互不影响。
*   引用类型的内存地址被拷贝，因此拷贝前后的对象共享相同的引用类型数据。
*   修改共享引用类型的数据会影响所有指向该数据的对象。

深拷贝：

*   完整地从内存中拷贝一个对象，包括其所有属性和嵌套的对象。
*   在堆内存中开辟新的区域来存储新对象，确保新对象和原始对象完全独立。
*   修改新对象不会影响原始对象，反之亦然。

对象赋值：

*   当一个对象赋值给新变量时，复制的是存储在栈中的引用，而不是堆中的数据。因此，两个变量指向同一个堆内存空间。

*   两个变量指向同一个堆内存空间，对一个变量的修改会影响另一个变量，因为它们共享存储空间。