//数组拷贝的方法:System.arraycopy()
/*
查看源代码文件中的System类的arraycopy方法:
这是我的安装目录:D:\OpenSourceSoftware\Java\jdk1.7.0_80\src\java\lang\System.java
System.java文件中的arraycopy方法代码如下:
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
看看参数
Object:java语言中的根类,是老祖宗类,顶级父类,所有类都是他衍生出来的,Object可以表示任意数据类型
关于native修饰符:
有没有注意到该方法是没有方法体的,该方法使用了native修饰符(也称为本地方法),意思就是
该方法的底层使用了C/C++语言实现了,那么java直接调用其他语言编写好的功能
参数说明:
Object src : 原数组
int srcPos : 从元数据的起始位置开始
Object dest : 目标数组
int destPos : 目标数组的开始起始位置
int length : 要copy的数组的长度
查阅API文档(java的帮助文档)
*/
class ArrayCopyDemo
{
public static void main(String[] args)
{
byte[] srcBytes = new byte[]{2,4,0,0,0,0,0,10,15,50};
byte[] destBytes = new byte[5];
printArray(destBytes);
System.arraycopy(srcBytes,0,destBytes,0,4);
printArray(destBytes);
}
static void printArray(byte[] arr)
{
String ret = "[";
for (int i=0; i<arr.length; i++)
{
ret = ret + arr[i];
if (i != arr.length -1)
{
ret = ret + ", ";
}
}
ret = ret + "]";
System.out.println(ret);
}
}
原文地址:http://blog.51cto.com/freshair/2055215