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;
   }

此表是超过源数组长度后,数组元素填充类型的默认值

数据型态 初值
byte 0
short 0
int 0
long 0L
float 0.0f
double 0.0d
char \u0000
boolean false

你可能感兴趣的:(Java学习笔记)