StringBuilder vs String concatenation in toString() in Java

    技术2022-05-19  18

    http://stackoverflow.com/questions/1532461/stringbuilder-vs-string-concatenation-in-tostring-in-java

     

    Question

    ===========================================================

    Given the 2 toString() implementations below, which is prefered

    public String toString(){    return "{a:"+ a + ", b:" + b + ", c: " + c +"}";}

    or

    public String toString(){    StringBuilder sb = new StringBuilder(100);    return sb.append("{a:").append(a)          .append(", b:").append(b)          .append(", c:").append(c)          .append("}")          .toString();}

    More importantly given we have only 3 properties it might not make a difference, but at what point do you switch from concat to builder?

    Answer: ===========================================================

    Version 1 is preferable because it is shorter and the compiler will in fact turn it into version 2 - no performance difference whatsoever.

    More importantly given we have only 3 properties it might not make a difference, but at what point do you switch from concat to builder?

    At the point where you're concatenating in a loop - that's usually when the compiler can't substitute StringBuilder by itself.

     


    最新回复(0)