【发布时间】:2011-07-22 18:11:05
【问题描述】:
我有一个遗留的 Java 文件,它使用字符串连接来构建巨大的字符串对象。这是一个严重的性能问题。是否有这样的方法可以执行以下操作
String test="I am a very bad programmer"
+"to use concatenation"
+"Instead of StringBuilder"
+" or StringBuffer";
到
StringBuilder strBuilder= new StringBuilder();
strBuilder.append("I am a bad programmer");
strBuilder.append("to use concatenation");
strBuilder.append("Instead of StringBuilder");
strBuilder.append(" or StringBuffer");
String str= strBuilder.toString();
基本上我需要一个java中的存根来将String实例化作为输入并转换为StringBuilder。过去有人尝试过吗?
【问题讨论】:
-
AFAIK StringBuilder 和 StringBuffer 仅在循环使用它们时会提高性能,因为编译器会自动将普通连接转换为 StringBuilder(?)。
-
您确定在其他地方没有性能瓶颈吗?
-
@ZeissS 你应该提供这个作为答案,而不是评论。
-
感谢您的建议,我们会在需要时继续使用 StringBuilder。
-
@rath:链接的问题不同,因为它不使用 static 字符串。它在连接中使用函数调用。对于 this 问题中的给定示例,我的陈述是正确的。包含函数调用确实会改变情况。
标签: java performance concatenation stringbuilder