1
這裏是我的代碼拋出java.lang.OutOfMemoryError: Java heap space
:如何通過StringBuilder避免Java OutofMemoryError堆空間循環?
StringBuilder sb = new StringBuilder();
for (int i = 0; i< ranks.size(); i++) {
Map<String, String> map = ranks.get(i);
sb.append("SELECT ");
int iter = 0;
for (String key : map.keySet()) {
if (key.equals("ware_md5")) {
sb.append("'").append(map.get(key)).append(" ' AS ").append(key);
}
else {
sb.append(map.get(key)).append(" AS ").append(key);
}
if (iter < map.keySet().size() - 1) {
sb.append(",");
}
iter++;
}
if (i < ranks.size() - 1) {
sb.append(" UNION ALL ");
}
}
return sb.toString();
「居」 ArrayList包含約30000個值
有什麼方法重寫代碼的這一和平來避免這個錯誤?
你打算怎麼做一個字符串這麼大?也許你應該直接寫一個文件? map.keySet()的大小是多少? – 9000
這裏我試圖生成某種類型的SQL請求,map.keySet()的大小約爲220條記錄 –
即使解決了內存問題,也可能遇到多個問題。 1個大的查詢,數據庫可能無法處理。大量的性能將成爲數據庫服務器以及返回行數的重要組合。我會建議少做但多做的方法 –