内存分区、深拷贝和浅拷贝
内存区分
拷贝
直接说就是赋值;
把一个变量赋给另一个变量,把变量的内容进行拷贝;
把一个对象赋给另一个对象,把一个对象拷贝一份;
基本数据类型没有深浅拷贝问题
因为基本数据类型赋值时,赋的是数据,所以不存在深浅拷贝问题;
int a = 1;
int b = a;
如果改变 b 的值,a 的值不会发生变化
引用数据类型有深浅拷贝问题
引用数据类型赋值赋的是地址,就是原引用数据类型在内存中保存的内容;
int arr1 = new Array(1,2,3);
int arr2 = arr1;
这是一个浅拷贝
如果改变 arr2 的值,则 arr1 也会发生变化;
原因就是 arr1 和 arr2 引用了同一块内存;