我有一个多线程程序,它处理大量的字符串操作,执行几个小时后内存超出并导致“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();
}
最佳答案
它在什么意义上消耗了5-10MB的内存?你在这里分配了这么多。 Java 在需要内存之前不会费心回收它。这不会导致 OutOfMemoryError
,而不是这种类型的代码。
那么,为什么不实际显示导致 OOME 的代码类型呢?
关于java - Java中的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11529536/