1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//数组拷贝的方法: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);
     }
}