您的位置:首页 > 编程语言 > Java开发

Java.lang.OutOfMemoryError: Java heap space 引因

2017-05-24 16:24 423 查看
今天,写了一个二分法,来测试一下运行时间,发现爆错了

看代码:

public class TestAll {

public static void main(String[] args) {

List<Integer> list = new ArrayList<Integer>();
System.out.println("1m===" + System.currentTimeMillis());
for (int i = 0; i < 2147483644; i++) {
list.add(i);
}
System.out.println("2m===" + System.currentTimeMillis());
// System.out.println(hasSame(list));
System.out.println("" + getTheNumber(list, 3));
System.out.println("3m===" + System.currentTimeMillis());
}

private static boolean hasSame(List<? extends Object> list) {
if (null == list)
return false;
return 1 == new HashSet<Object>(list).size();
}

private static int getTheNumber(List<Integer> list, int num) {
int low = 0;
int high = list.size() - 1;

while (low < high) {
if (num < list.get((low + high) / 2)) {
high -= 1;
} else {

low += 1;
}
if (num == list.get((low + high) / 2)) {
return (low + high) / 2;
}
}
return 0;
}

}


报错:



内存不够了,发生在list.add这,

一般大循环,就发生在这;

一般解决,修改eclipse的jvm配置

见:

java.lang.OutOfMemoryError: Java heap space错误及处理办法(收集整理、转)

eclipse提示内存不足

好书推荐:

图解算法 下载此书:

图解算法下载:python 版的;原汁原味的;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: