数组的拷贝
java中数组的深浅拷贝
深拷贝:拷贝后完全是另一个新的地址和空间,拷贝前后对象互不影响;浅拷贝:只是拷贝了引用,并没有开辟新的内存空间,修改原对象,新对象也会随之改变。
数组拷贝方式
- arr.clone()
- 新建一个与原数组大小一样的数组,利用循环挨个复制
- Arrays.copyOf(arr, arr.length)
- System.arraycopy(org:原数组,srcPos:原数组起始下标,dst:目标数组,dstPos:目标数组放置下标,length:拷贝长度)
注意!
-
一维数组的拷贝,基本数据类型是深拷贝,引用类型是浅拷贝。
-
二维数组的拷贝,除了循环拷贝是深拷贝,其他三种都是浅拷贝!可以把二维数组当成多个一维数组组成,对二维数组每个一维数组进行拷贝(使用其他三种方法),最终结果就是深拷贝(也就是循环拷贝)。