只有一个注意事项,java的引用传递是传值的
所以A=C是错的
必须使用for循环,依次修改数组对象A中的值,此时才能真正改变实参A

    public void merge(int A[], int m, int B[], int n) {
        int[] C=new int[m+n];
        int i,j,k;
        i=j=k=0;
        while(i<m && j<n){
            if(A[i]<B[j]){
                C[k++]=A[i++];
            }else{
                C[k++]=B[j++];
            }
        }

        while(i<m){
            C[k++]=A[i++];
        }
        while(j<n){
            C[k++]=B[j++];
        }
       //直接赋值是错的,只能使形参A指向数组对象C,并不会改变外面的实参A值
       //A=C;
       for (int l = 0; l < m+n; l++) {
            A[l]=C[l];
        }
    }