本帖最后由 Loghnzagn 于 2013-06-19 22:20:07 编辑

解决方案 »

  1.   

    System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
    从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
    src - 源数组。
    srcPos - 源数组中的起始位置。
    dest - 目标数组。
    destPos - 目标数据中的起始位置。
    length - 要复制的数组元素的数量。 以上来自APILZ的wall是二维数组,则wall[x]就是一个数组,后面的逻辑,相信LZ自己应该能分析出来了吧?个人感觉,在解读一个程序碰到一个JDK封装的方法时,我们只要知道其作用即可,如果一定要知道其原理,最好也是最权威的还是要看看其源码(安装JDK都会有个src.zip的源码包的),而且这个原理的学习,应当算是另外一个“课题”(不要影响自己对当前程序的分析或理解)。
      

  2.   

    关于arraycopy可以看老紫竹的博客:
    http://blog.csdn.net/java2000_net/article/details/4059465在JAVA里面,可以用复制语句"A=B"给基本类型的数据传递值,但是如果A,B是两个同类型的数组,复制就相当于将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变.另外使用复制的话除了for循环和arraycopy,还可以用clone方法