经过这段时间的源码阅读,我发现一个非常重要的方法,虽然我们平时很少用到,但是jdk源码里面对数组的复制都是通过这个方法,所以记录一下
public static native void arraycopy(Object src,int srcPos,Object dest, int destPos,int length);
方法简介:方法是一个本地方法,而且是一个System的静态方法,一般System里面的静态方法都很牛逼,大多都是经过性能优化过的,所以放心使用;
1.参数说明:
src:资源数组
srcPos:资源数组的起始位置
dest:目标数组
destPos:目标数组的起始位置
length:将被copy的数组的长度
2.例子:
public static void main(String[] args) {
String str1 = "sniper Come on!";
String str2 = "good";
char[] char1 = str1.toCharArray();
char[] char2 = str2.toCharArray();
char[] char3 = new char[char1.length + char2.length];
System.arraycopy(char1, 0, char3, 0, char1.length);
System.out.println(char3);
System.arraycopy(char2, 0, char3, char1.length, char2.length);
System.out.println(char3);
}
输出: