欧比旺说过,只有西斯才会以绝对或类似的方式思考......
很高兴您知道Java编译器在内部将字符串上的“+”替换为.这就是编译器的目的:让生活更轻松。StringBuilder
除非你有循环,如链接大小写,或者Jon Skeet的例子中的条件,否则这主要是可读性和维护的难易程度的问题。
取代
return "User " + userName + " said";
跟
new StringBuilder().append("User ").append(userName).append(" said").toString();
使代码更长,可能更难修改,更有可能强制换行,并为您提供更高的性能。
但是,当加法不仅适用于字符串,而且涉及数字时,可能有时可能更具可读性的解决方案。StringBuilder
return "User" + a + b + " said: " + (c + d);
可能更令人困惑的是:
return new StringBuilder().append("User ").append(a).append(b)
.append(" said: ").append(c+d).toString();
但这主要是意见和编码风格的问题。“应该”在这里不是一个好词。