搞错了dA[aA][bB]=new  Double(rD.nextDouble()); 
应为dA[i][ii]=new  Double(rD.nextDouble());

解决方案 »

  1.   

    to alexll:
    我这就去调试!:P
      

  2.   

    经过调试后的程序如下:
    package damc;
    import java.util.Random;
    public class DAMC
    {
      Random rD=new Random();
      Double[][] dA;  void doubleArrayCreat(int aA,int bB)
      {
        dA=new Double[aA][bB];
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            dA[i][ii]=new Double(rD.nextDouble());
          }
        }
      }  void pA(Object[][] dA)
      {
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            System.out.println(dA[i][ii]);
          }
        }
      }  public static void main(String[] args)
      {
        DAMC abc=new DAMC();
        abc.doubleArrayCreat(abc.rD.nextInt()+1,abc.rD.nextInt()+1);
        abc.pA(abc.dA);
      }
    }
    但是还是显示:
    outofmemoryerror
      

  3.   

    to hellomartin(小白狼):
    但是java的数组上限为long呀!
      

  4.   

    to hellomartin(小白狼):
    My memory is 1G ddr
      

  5.   

    数组元素的个数总得是个整型数把
    整型数的最大值为2的31次方减一,你是随机产生两个整型数abc.rD.nextInt()+1,abc.rD.nextInt()+1作为二维数组的下标,如果这个数是2的20次方,那数组
    的元素就是2的20次方乘以2的20次方就是2的40次方,早就超出了整形的定义范围
    相比较2的40次方,1g能有多大?
      

  6.   

    to ajiao:
    你说得太好了!我怎么没有想到!看来要换2G内存了!:P
      

  7.   

    修改了程序,但是还是出错!
    package damc;
    import java.util.Random;
    public class DAMC
    {
      Random rD=new Random();
      Double[][] dA;  void doubleArrayCreat(int aA,int bB)
      {
        dA=new Double[aA][bB];
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            dA[i][ii]=new Double(rD.nextDouble());
          }
        }
      }  void pA(Object[][] dA)
      {
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            System.out.println(dA[i][ii]);
          }
        }
      }  public static void main(String[] args)
      {
        DAMC abc=new DAMC();
        abc.doubleArrayCreat(abc.rD.nextInt()%5+1,abc.rD.nextInt()%5+1);
        abc.pA(abc.dA);
      }
    }
      

  8.   

    提示在
    dA=new Double[aA][bB];
    一行出错
      

  9.   

    to w_tsinghua():
    Ok! I will be test this again! thanks!
      

  10.   

    package damc;
    import java.util.Random;
    public class DAMC
    {
      Random rD=new Random();
      Double[][] dA;  void doubleArrayCreat(int aA,int bB)
      {
        dA=new Double[aA][bB];
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            dA[i][ii]=new Double(rD.nextDouble());
          }
        }
        this.pA(this.dA);
      }  void pA(Object[][] dA)
      {
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            System.out.println(dA[i][ii]);
          }
        }
      }  public static void main(String[] args)
      {
        DAMC abc=new DAMC();
        abc.doubleArrayCreat(Math.abs(rD.nextInt()%5+1),Math.abs(rD.nextInt()%5+1));
      }
    }
    提示出错:
    "DAMC.java": Error #: 308 : non-static variable rD cannot be referenced from a static context at line 35, column 35
    "DAMC.java": Error #: 308 : non-static variable rD cannot be referenced from a static context at line 35, column 62
      

  11.   

    谢谢各位的帮忙!
    问题已解决!
    散分快乐!哈哈!
    现将源代码公布如下:
    package damc;
    import java.util.Random;
    public class DAMC
    {
      Random rD=new Random();
      Double[][] dA;  void doubleArrayCreat(int aA,int bB)
      {
        dA=new Double[aA][bB];
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            dA[i][ii]=new Double(rD.nextDouble());
          }
        }
        this.pA(this.dA);
      }  void pA(Object[][] dA)
      {
        for(int i=0;i<dA.length;i++)
        {
          for(int ii=0;ii<dA[i].length;ii++)
          {
            System.out.println(dA[i][ii]);
          }
        }
      }  public static void main(String[] args)
      {
        DAMC abc=new DAMC();
        abc.doubleArrayCreat(Math.abs(abc.rD.nextInt()%5+1),Math.abs(abc.rD.nextInt()%5+1));
      }
    }