System.arraycopy复制数组方法解释

**/*
 * @param      src      the source array.源数组
 * @param      srcPos   starting position in the source array.源数组要复制的起始位置
 * @param      dest     the destination array.目标数组(将原数组复制到目标数组)
 * @param      destPos  starting position in the destination data.目标数组起始位置(从目标数组的哪个下标开始复制操作)
 * @param      length   the number of array elements to be copied.复制源数组的长度
 * @exception  IndexOutOfBoundsException  if copying would cause
 *               access of data outside array bounds.
 * @exception  ArrayStoreException  if an element in the src
 *               array could not be stored into the dest array
 *               because of a type mismatch.
 * @exception  NullPointerException if either src or
 *               dest is null.
 */
public static native void arraycopy(Object src,  int  srcPos,Object dest, int destPos,int length);**

例子:

package test.demo;

    public class ArrayCopyTest {
        
        
        public static void main(String[] args) {
            char[] src = new String("hellow").toCharArray();
            char[] dest = new String("12345789").toCharArray();
            
            System.out.print("src源数组为:");
            for(char c : src){
                System.out.print(c);
            }
            
            System.out.print("\ndest目标数组为:");
            for(char c : dest){
                System.out.print(c);
            }
            
            /*
             * 开始执行数组复制操作
             * 将源数组['h','e','l','l','o','w']从数组下标0开始的4位长度的数组['h','e','l','l']
             * 复制到目标数组['1','2','3','4','5','6','7','8'],从下标为3的位置开始
             */
            System.arraycopy(src,0,dest,3,4);
            
            System.out.print("\n复制完成之后的目标数组为:");
            for(char c : dest){
                System.out.print(c);
            }
        }
    }

结果输出如下:
src源数组为:hellow
dest目标数组为:12345789
复制完成之后的dest目标数组为:123hell9

你可能感兴趣的:(System.arraycopy复制数组方法解释)