Intellij Idea 提供替换以下内容:
StringBuffer sb = new StringBuffer();
sb.append("Name=").append(name).append(", name2=").append(name2).append(", list=").append(list);
return sb.toString();
致:
return "name=" + name + ", name2=" + name2 + ", list=" + list;
据我所知,它的效率较低(可变/不可变)。 那么,什么更好呢?
最佳答案
第二个编译为与第一个相同的字节码,只不过它使用非同步 StringBuilder
而不是同步 StringBuffer
。所以它不仅可读性更强,而且速度也更快。我会选择第二个。
在循环中连接时使用 StringBuilder
非常有用,可以避免创建许多临时 String
对象:
String result = "";
for (String element : array) {
result += element;
}
应替换为
StringBuilder builder = new StringBuilder();
for (String element : array) {
builder.append(element);
}
String result = builder.toString();
关于java - 字符串与字符串缓冲区。 IDEA提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27104556/