寻找StringBuilder的高性能替代品

时间:2016-02-23 02:59:36

标签: java out-of-memory heap stringbuilder

我有一段非常简单的代码,它遍历Database对象列表并将某些属性附加到StringBuilder。现在结果有时超过100K,因此追加操作超过100K

我的问题是我无法在需要数据的情况下缩短迭代次数。但Stringbuilder继续接管堆空间。并抛出OutOfMemoryException。

是否有人遇到任何此类情况,并且是否存在此问题的解决方案或StringBuilder的替代方案。

很有可能我正在做的事情可能也是错的,所以即使代码非常简单,我也会发布它。

StringBuilder endResult = new StringBuilder();
        if (dbObjects != null && !dbObjects.isEmpty()) {
            for (DBObject dBO : dbObjects) {
                endResult.append("Starting to write" + dBO.getOutPut() + "content");
                endResult.append(dBO.getResults);
            }
            output.append("END");
        }

就像我说的那样,我很可能会从DB获得100000个结果

1 个答案:

答案 0 :(得分:1)

使用StringBuilder时,您不应该这样做:

endResult.append("Starting to write" + dBO.getOutPut() + "content");

上面的语句将进行字符串连接。使用append()方法,例如:

endResult.append("Starting to write").append(dBO.getOutPut()).append("content");