我的代码做这样的事情:主要java.lang.OutOfMemoryError:Java堆空间
for(SomeObject so : someObjects)
{
Blah b = so;
NewObject n = dao.GetNO(b.23);
}
,即它正在创造一个新的变量里面的每个迭代循环。
这可能是内存不足问题的原因吗?
通过Netbeans的报告的错误:
Caused by: java.lang.OutOfMemoryError: Java heap space
at java.lang.StringCoding$StringDecoder.decode(StringCoding.java:133)
at java.lang.StringCoding.decode(StringCoding.java:173)
at java.lang.String.<init>(String.java:443)
at java.lang.String.<init>(String.java:515)
at com.gargoylesoftware.htmlunit.WebResponseImpl.getContentAsString(WebResponseImpl.java:215)
at com.gargoylesoftware.htmlunit.WebResponseImpl.getContentAsString(WebResponseImpl.java:205)
Upate 这是一个java控制台应用程序,以及整个应用程序在for循环运行的基本。
这可能是原因,但不一定是。尝试释放您不再需要的每个对象。特别是,如果您持有不再需要的对象,请检查您的所有集合(地图,列表...)。 – 2010-01-06 18:36:18
您的堆大小设置为? – 2010-01-06 18:37:09
你可以发布一些更实际的代码发生错误吗?有一点需要注意:'com.gargoylesoftware.htmlunit.WebResponseImpl.getContentAsString()'的返回值可能是一个相当大的字符串。 – MatrixFrog 2010-01-06 18:39:30