JAVA的一个APPLET程序里,
定义double data=new double[1000000][100]会不会出事?
要不要先申请内存的?
如果要,怎么申请?
谢谢

解决方案 »

  1.   

    kvci同志,8亿bytes是800M阿,想不出有什么需要这么巨大巨大巨大.....的数组.你解释一下吧!
      

  2.   

    算错了
    不好意思
    C里面都可以访问4G内存啊在某些特殊数据处理场合,比如地理信息处理,
    设计到比较大的地图的,中间计算过程可能会要到啊
    还比如旅行家遍历所有城市问题里的最短路径求解,
    几十万个城市点的坐标
    或者小一点内存
    比如 data[1000000][2]吧
    要不要申请的?
    new 的时候申请
    会不会出现什么问题?
    比如申请不到?
      

  3.   

    APPLET程序,浏览器根本不会给这么多内存
      

  4.   

    16M左右呢?
    data[10000000][2]
      

  5.   

    我用到一个什么算法
    原来是PASCAL的,要改成JAVA的一个APPLET里使用
    里面
    Const MaxTriangles = 1000000;
    type TDEdges = array[0..2,0..MaxTriangles * 3] of LongInt;
    这个就相当与定义long TDEdges[2][3000000]
    但是PASCAL源码里有一个申请该数组内存的语句
      GetMem(Edges, sizeof(Edges^));//申请内存
    我就是怕JAVA里出事啊
      

  6.   

    楼主应该多从算法角度去做,这么大的数组太不安全了,很可能就申请不到,虽然Java有内存保护机制,但是还是要为了自己的程序着想,不要用这么大的数组了,可以建立一个小的缓存区,然后用缓存进行遍历,这样速度也要快一点