鉴于toString()下面的两个实现,首选哪一个:
public String toString(){
return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}
Run Code Online (Sandbox Code Playgroud)
要么
public String toString(){
StringBuilder sb = new StringBuilder(100);
return sb.append("{a:").append(a)
.append(", b:").append(b)
.append(", c:").append(c)
.append("}")
.toString();
}
Run Code Online (Sandbox Code Playgroud)
?
更重要的是,鉴于我们只有3个属性,它可能没有什么区别,但你会在什么时候从+concat 切换到 StringBuilder?
什么时候我们应该使用+来连接字符串,什么时候首选StringBuilder?何时适合使用concat.
我听说StringBuilder更适合循环中的连接.为什么会这样?
谢谢.
我想知道,因为编译器内部使用StringBuilder在执行字符串连接时附加2个字符串,那么问题是什么?如果字符串连接已经为你完成了工作,我为什么要使用StringBuilder呢?还有其他具体原因吗?
使用字符串生成器而不是纯字符串连接有什么好处和权衡?
new StringBuilder(32).append(str1)
.append(" test: ")
.append(val)
.append(" is changed")
.toString();
Run Code Online (Sandbox Code Playgroud)
vs说
str1 + " test: " + val + " is changed".
Run Code Online (Sandbox Code Playgroud)
str1是一个随机的10个字符串.
str2是一个随机的8个字符串.