我试图创建一个数字(或整数,无论你想从它的整数和长范围内调用它)array..say的大小。这是我的代码。当我执行它时,我得到了内存堆大小'例外 我甚至尝试增加转储文件的大小或HVM配置中的任何内容。不起作用
CODE片段(不一定需要理解。只是跳到最后:
int dsum=0;
int c1=-1;
int abno[]=new int[28124];
for(int i=2;i<28124;i++)
{
int f=(i/2);
for(int j=1;j<=f;j++)
{
if(i%j==0)
{
dsum+=j;
}
}
if(dsum>i)
{
c1++;// AROUND 29000 IN THE END
abno[c1]=i;
}
}
int abnos[]=new int[(c1*(c1+1))/2];//CANT STORE THIS BIG A VALUE
答案 0 :(得分:2)
您可以在java中增加堆大小
-Xmx<size> ,maximum heap size
-Xms<size> ,minimium heap size
e.g。 java -Xms 256m -Xmx 6g yourProgramName。如果您使用的是某些IDE(例如intellij),则可以通过VM Options
传递这些选项答案 1 :(得分:1)
您正在请求只有1.6GB的堆空间。 32位JVM只能处理1.2-1.6 GB的堆空间,具体取决于操作系统,环境和确切的实现。没有设置可以帮助你。
您的选择是: