求教,为什么这里定义大小为一亿的整数数组会OM,经测试,最大大概能定义15400000左右,求个详细点的解释,谢谢
public static void main(String[] args) {
Random r = new Random();
int[] str = new int[100000000];
for (int i = 0; i < num; i++) {
str[i] = (r.nextInt() >>> 1) % 100000000;
}
sortStr(str);
}
public static void main(String[] args) {
Random r = new Random();
int[] str = new int[100000000];
for (int i = 0; i < num; i++) {
str[i] = (r.nextInt() >>> 1) % 100000000;
}
sortStr(str);
}
楼主【cexo821】截止到2008-07-03 16:02:44的历史汇总数据(不包括此帖):
发帖的总数量:0 发帖的总分数:0
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:0 未结的总分数:0
结贴的百分比:---------------------结分的百分比:---------------------
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
Random r = new Random();
int[] str = new int[100000000];
for (int i = 0; i < 100000000; i++) {
str[i] = (r.nextInt() >>> 1) % 100000000;
}
// sortStr(str);
}
num和一意无关
据说是跟操作系统支持的int类型最大值有关
Java的每个Method的限制是64K。
不同的VM可能会有不同的缺省值,如果要设置,可以使用-Xms和-Xmx选项
你可以在启动jvm的时候设置-Xmx1024m,也就是说最大可分配内存1G,不过你要保证你机器有这么大的内存
呵呵
运行里加上参数就行了,比如
java -Xmx500M Temp
Could not reserve enough space for object heap
-Xms1024m -Xmx1024m 的结果。