相关疑难解决方法(0)

String,StringBuffer和StringBuilder

请告诉我一个实时的情况来比较String,StringBufferStringBuilder

java oop string stringbuilder

206
推荐指数
6
解决办法
16万
查看次数

+运算符何时比StringBuilder更快?

在过去,我一直认为你应该使用StringBuilderappend(String)构建带变量的字符串,而不是string += split[i].在什么情况下这是准确的?我问,因为通常,如果我要写下面的内容:

String[] split = args; // command line arguments or whatever
String myString = "";
for (int i = 0; i < split.length; i++) {
    myString += split[i];
}
Run Code Online (Sandbox Code Playgroud)

我的IDE告诉我它应该转换为使用StringBuilder.但是,写这样的东西:

StringBuilder build = new StringBuilder();
build.append("the ").append(build.toString()).append(" is bad").append(randomvar);
build.toString();
Run Code Online (Sandbox Code Playgroud)

当我应该使用String时,IntelliJ实际上使用StringBuilder列为性能问题.它被列为性能问题的事实表明它实际上可能导致问题,而不是仅仅是一点点慢.

我注意到第一个例子是一个循环,第二个例子不是 - 是一个建议用于大量连接的StringBuilder,但是正常连接对于非循环情况更好(这也意味着在循环中运算符+=将被使用,而在外部它可能是一个循环"the " + build.toString() + " is bad" + randomVar- 是+ =问题而不是+?)

java

2
推荐指数
1
解决办法
2949
查看次数

标签 统计

java ×2

oop ×1

string ×1

stringbuilder ×1