我對現有應用程序的代碼進行了一些修改。雖然測試我得到異常創建:java.lang.OutOfMemoryError。但是錯誤在一段時間內只發生一次。下面是其中所述錯誤發生創建的異常:java.lang.OutOfMemoryError
}else if(subject.equals("Mobile")){
to=(String)hashMap.get("M_MOBILETOMAIL");
m_mobileoptionvalue=(String)parameters.get("m_mobileoptionvalue");
m_mobileq1value=(String)parameters.get("m_mobileq1value");
StringTokenizer m_tokenizer1 = new StringTokenizer(m_mobileq1value,"|");
while (m_tokenizer1.hasMoreTokens()){
m_mobileq1List.add(m_tokenizer1.nextToken());
}
m_mobileq2value=(String)parameters.get("m_mobileq2value");
StringTokenizer m_tokenizer2 = new StringTokenizer(m_mobileq2value,"|");
while (m_tokenizer2.hasMoreTokens()){
m_mobileq2List.add(m_mobileq2value);
}
m_mobileq3value=(String)parameters.get("m_mobileq3value");
StringTokenizer m_tokenizer3 = new StringTokenizer(m_mobileq3value,"|");
while (m_tokenizer3.hasMoreTokens()){
m_mobileq3List.add(m_mobileq3value);
}
m_mobileq4value=(String)parameters.get("m_mobileq4value");
m_mobileq4=(String)parameters.get("m_mobileq4");
}
我正在流汗的錯誤是在線路
m_mobileq2List.add(m_mobileq2value);
另外附接JVM日誌----
exception created in one of the service methods of the servlet MailSend in application interact_assorted_intapp7. Exception created : java.lang.OutOfMemoryError
at java.util.ArrayList.newElementArray(ArrayList.java:94)
at java.util.ArrayList.growAtEnd(ArrayList.java:375)
at java.util.ArrayList.add(ArrayList.java:158)
at com.international.servlets.MailSend.doPost(MailSend.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:738)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
我的代碼段經歷了一些相關的帖子,但沒有得到任何適當的結果。同時HeapSize的增加超出了範圍。
您是否內存不足? –
我認爲,背後的原因是內存泄漏。在完成所有變量之後,確保所有變量都有弱點或幻影參考,並且必須注意不要強烈引用任何死的物體。 –
你需要給JVM更多的內存來處理,否則你可能會在某處發生內存泄漏。 – Bart