Java中的内存问题

时间:2012-07-17 19:30:54

标签: java heap out-of-memory

我有一个多线程程序,处理大量的字符串操作,经过几个小时的执行,内存超出并导致“java.lang.OutOfMemoryError:Java堆空间”问题。而且我已经将整个内存用于java程序,即16 GB。

对于测试我创建了以下示例程序以了解问题及其执行相同的问题,在重新初始化字符串生成器几千次后,它消耗了超过5-10MB的内存,任何人都可以帮忙克服了这个问题。

StringBuilder strObj = new StringBuilder();
for(int i=0; i<50000; i++) {
    strObj = null;
    strObj = new StringBuilder();
}

2 个答案:

答案 0 :(得分:1)

它在什么意义上消耗5-10MB的内存?你在这里分配那么多。在需要内存之前,Java不会费心回收它。这不会导致OutOfMemoryError,而不是此类代码。

那么,为什么不实际显示导致OOME的代码类型?

答案 1 :(得分:0)

感谢支持人员,实际上我的问题在通过调用 System.gc()语句手动进行垃圾收集后得到了解决。