StringBuilder-重置或创建新的
我有一个条件,即StringBuilder会不断存储与大型平面文件(100兆字节)中的模式匹配的行。但是,达到条件后,我将StringBuilder变量的内容写入文本文件。
现在我想知道是否应该通过重置对象->使用相同的变量
stringBuilder.delete(0,stringBuilder.length())
要么
stringBuilder=new StringBuilder();
请提出就性能和OOM问题而言您认为哪个更好。
回答:
我认为StringBuilder#delete(start, end)
通话仍然很昂贵,您应该这样做:
stringBuilder.setLength(0);
重置它。
查看完
,似乎setLength(int)
完整保留了旧缓冲区,最好调用:
在上述调用which之后 。
所以这样的事情会更有效:
stringBuilder.setLength(0); // set length of buffer to 0stringBuilder.trimToSize(); // trim the underlying buffer
以上是 StringBuilder-重置或创建新的 的全部内容, 来源链接: utcz.com/qa/408680.html