我的代碼做這樣的事情:主要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