下面有两个toString()
实现,哪一个更好:
public String toString(){
return "{a:"+ a + ", b:" + b + ", c: " + c +"}";
}
或者public String toString(){
StringBuilder sb = new StringBuilder(100);
return sb.append("{a:").append(a)
.append(", b:").append(b)
.append(", c:").append(c)
.append("}")
.toString();
}
更重要的是,考虑到我们只有3个属性,可能没有什么区别,但你从何时开始切换使用 StringBuilder
而不是 +
进行字符串拼接呢?
StringBuilder
预先分配多少空间,否则当它用完空间时,会不得不通过创建新的char[]
数组并复制数据来将大小加倍,这是代价高昂的。你可以通过指定大小来欺骗StringBuilder
,这样就不需要创建新的数组——所以如果你认为你的字符串长度约为100个字符,那么你可以将StringBuilder
设置为该大小,它就不必内部扩展了。 - non sequitor