public class Copy{
  public static void main(String [] args){
    String []s={"A","bc","def","higk"};
    String[]sBak=new String [6];
    System.arraycopy(s,0,sBak,0,s.length);
    for(int i=0;i<sBak.length;i++){
     System.out.println(sBak[i]);
     }
     int [][]a={{1,2},{3,4,5},{7,9}};
     int [][]aBak=new int [4][ ];
     System.arraycopy(a,0,aBak,0,a.length);
     for(int i=0;i<aBak.length;i++){
     for(int j=0;j<aBak[i].length;j++){
     System.out.println(aBak[i][j]+"--");
     }
    }
  }
}

解决方案 »

  1.   

    int [][]a={{1,2},{3,4,5},{7,9}}; 这是一个不规则数组
      

  2.   

    你把数组a拷贝到数组aBak里,a的一维才3,你为什么要int[][] aBak = new [4][]???
    当然会出错了!
      

  3.   

    NullPointerExcption错误?  
     
    你想把三个苹果给四个人吃,肯定一个会没有啊(要求一个人一个~)
    那个没有的就说,我是第四个人,我没有第四个苹果,我出现
      

  4.   

    由于aBak[4]是空的,所以它不能指向的aBak[4][i]
      

  5.   

    up up 因为没有苹果!
    故:第四个人很生气,后果很严重!
      

  6.   

    呵呵,楼上说的很明白啊
    int [][]aBak=new int [3][ ];
    这个可以看成是内存中三个一维数组的引用,分别是aBak[0],aBak[1],aBak[2],
    而int [][]aBak=new int [4][ ];
    表示你又在堆中开辟了一块内存,即成了四个一维数组,
    可是栈中原来的的引用没有变,还是三个引用,
    所以就抛异常喽.
      

  7.   

    System.arraycopy(a,0,aBak,0,a.length); 
    能复制多维数组吗!...........