import java.util.Arrays;
public class ArrayCopy {
public static void main(String[] args) {
// public static void arraycopy(Object src, int stcPos, Object dest, int destPos, int length);
// 从指定源数组复制一个数组
// 从源数组中位置srcPos到srcPos+length-1之间的元素被分别复制到目标数组中的destPos到destPos+length-1位置
// src数组和dest数组可以是同一个数组
// 如果dest为null,则抛出NullPointerException异常
// 如果src为null,则抛出NullPointerException异常,并且不会修改目标数组
// 如果src参数指的是非数组对象、dest参数指的是非数组对象、src参数和dest参数指的时不同基本类型的数组、src参数指的是基本类型的数组而dest参数指的是引用类型的数组、src参数指的是引用类型的数组而dest参数指的是基本类型的参数则抛出 ArrayStoreException异常
// srcPos < 0 、 destPos < 0 、 length < 0 、 srcPos + length > src.length 、 destPos + length > dest.length --> IndexOutOfBoundsException
int[] iArray1 = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] iArray2 = new int[15];
System.out.println(Arrays.toString(iArray1));
try {
System.arraycopy(iArray1, 3, iArray2, 6, 6);
} catch (Exception e) {
e.printStackTrace();
} finally {
}
System.out.println(Arrays.toString(iArray2));
// [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
// [0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 8, 9, 0, 0, 0]
}
}