JavaのtoString()におけるStringBuilderと文字列連結の比較 質問する

JavaのtoString()におけるStringBuilderと文字列連結の比較 質問する

以下の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です。

ベストアンサー1

バージョン1の方が短く、コンパイラは実際にはそれをバージョン2に変換します- パフォーマンスの違いはまったくありません。

さらに重要なのは、プロパティが 3 つしかないことを考えると違いはないかもしれませんが、どの時点で concat から builder に切り替えるかということです。

ループ内で連結している時点では、通常、コンパイラはそれStringBuilder自体で置換できません。

おすすめ記事