数组的拷贝
文章目录
- 数组的拷贝
- 浅拷贝
- 内存分析
- 深拷贝
- 内存分析
浅拷贝
概念:数组的浅拷贝是指新数组保存的是原数组的内存地址,并没有拷贝真正的值,如果原数组的内容发生改变那么新数组的内容也会发生相应改变。
代码实现:
public class Test04{public static void main(String[] args){//原数组String[] arr = {"胡歌","彭于晏","陈冠希"};//新数组String[] newArr = arr;//修改原数组arr[1] = "谢霆锋";//遍历新数组for(String element : newArr){System.out.println(element);}}
}
结果:
内存分析
深拷贝
概念:深拷贝是指既会拷贝基本数据类型的值,也会针对实例对象的引用地址所指向的对象进行复制,复制一个完全一模一样的对象,新对象和老对象之间不共享任何内存。也就意味着对新对象的修改,不会影响老对象的值。深拷贝出来的对象,内部的类执行指向的不是同一个对象。
代码实现:
public class Test05{public static void main(String[] args){//原数组String[] arr = {"胡歌","彭于晏","陈冠希"};//新数组String[] newArr = new String[arr.length];//将原数组下标的元素赋值给新数组for(int i = 0;i<arr.length;i++){newArr[i] = arr[i];}//修改原数组arr[1] = "谢霆锋";//遍历新数组for(String element : newArr){System.out.println(element);} }
}
结果: