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 |
推荐阅读
- 流程控制语句 for循环打印菱形
- 实习第一天(mybites的学习笔记(纯手打))
- 支付宝单笔转账实现
- 多线程|Java三线程按序打印10次ABC (Lock实现与synchronized,wait,notify实现)
- IDEA下进行 JMH Java微基准测试工具套件
- tomcat7 redis seeion共享集群
- 一个小例子理解多态 - 修改 0 次