ArrayCopy

ArrayCopy底层实现分析

int[] arr=new[]{1,2,3,4,5}; int[] arr1=Arrays.copyof(arr,6); System.out.println(Arrays.toString(arr1)); //控制台 [1, 2, 3, 4, 5, 0]

  • 这里是拿int类型的copyof来做示范,其实其他类型也都一样,这里就不一一为大家详细介绍其他类型的了。
  • int[] original:这个参数指的是arr数组,此数组为源数组
  • int newLength:这个参数指定的是我们传入的要复制数组的长度
public static int[] copyOf(int[] original, int newLength) { //内部创建了一个数组(此数组相当于arraycopy中的目标数组) int[] copy = new int[newLength]; //original:源数组 //0:源数组从0开始计算 //copy:目标数组(也就是刚刚创建的那个数组) //Math.min(original.length, newLength):这个参数就是要从源数组中复制几个长度。//如果传入的数组长度比源数组的长度大,那么就会直接复制整个源数组 //此时可能会因为你传入的长度比源数组长度大,导致超过源数组长度的数组后,超过之后的数组元素则填充类型**默认值**//如果传入的数组长度比源数组的长度小,那么就会直接取传入的数组长度 System.arraycopy(original, 0, copy, 0, Math.min(original.length, newLength)); return copy; }

【ArrayCopy】此表是超过源数组长度后,数组元素填充类型的默认值
数据型态 初值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char \u0000
boolean false

    推荐阅读