浅拷贝
- 重新再堆中创建内存,拷贝前后对象的基本数据类型互不影响
- 只拷贝一层,不能对对象中的子对象进行拷贝
深拷贝
- 对对象中的子对象进行递归拷贝
- 拷贝前后的两个对象互不影响
基本数据类型的值是不可变的,动态修改了基本数据类型的值,它的原始值也是不会改变的
比较两个引用类型,是看其的引用是否指向同一个对象。
传值与传址
基本数据类型的赋值(=)是在内存中新开辟一段栈内存,然后再把再将值赋值到新的栈中。
引用类型的赋值是传址。只是改变指针的指向,例如,也就是说引用类型的赋值是对象保存在栈中的地址的赋值,这样的话两个变量就指向同一个对象,因此两者之间操作互相有影响。