一尘不染

Java中toString()中的StringBuilder vs String串联

javascript

鉴于以下2种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个属性,这可能不会有什么不同,但是您将在什么时候从+concat 切换到 StringBuilder


阅读 292

收藏
2020-09-28

共1个答案

一尘不染

版本1是更可取的,因为它更短,并且编译器实际上会将其转换为版本2-无任何性能差异。

更重要的是,鉴于我们只有3个属性,这可能没有什么区别,但是您什么时候从concat切换到builder

在您要串联的地方-通常是编译器无法自行替换时StringBuilder

2020-09-28