一、clone在数组基本数据类型中的使用

public class Main {
	public static  void main(String[] args) {
		int[] arr= {7,8,9};
		int[] cloneArr=(int[])arr.clone();
		arr[2]=777;
		cloneArr[2]=888;
		System.out.println(arr[2]);
		System.out.println(cloneArr[2]);
	}
}

运行结过显而易见
777
888
第一步先创建一个一维数组,然后调用clone()方法,将数组复制一份
在这里插入图片描述
所以改变arr[2]的数据,然后再改变cloneArr[2]的数据,两者有所不同。

二、clone在数组非基本数据类型中的使用

package main;
import main.forClone.*;
public class Main {
	public static  void main(String[] args) {
		TestClone[] arr=new TestClone[2];   //创建一个TestClone的一维数组
		arr[1]=new TestClone();				//创建实例
		TestClone[] cloneArr=(TestClone[])arr.clone(); //克隆出一个新的一维数组
		arr[1].value=777;					//赋值
		cloneArr[1].value=999;				//赋值
		System.out.println(arr[1].value);
		System.out.println(cloneArr[1].value);
	}
}
package main.forClone;

public class TestClone {
	public int value=8;
}

结果如下
999
999
为什么呢,原因如下
在这里插入图片描述
理解数组的clone方法的关键还是理解数组的结构,以及基本数据类型、引用、对象的不同。
如果以上clone方法难以理解,说明数组内容不是太熟悉。

posted on 2020-04-10 22:41  凸凸大军的一员  阅读(111)  评论(0编辑  收藏  举报