数组的拷贝
浅拷贝
概念:数组的浅拷贝是指新数组保存的是原数组的内存地址,并没有拷贝真正的值,如果原数组的内容发生改变那么新数组的内容也会发生相应改变。
代码实现:
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);
}
}
}
结果: