在Java 1.7+上我们是否还需要使用StringBuffer.append转换"this string"+"should"+"be"+"join"以获得最佳实践?

kjv*_*007 6 java stringbuffer

在Java 1.7+上我们是否还需要使用StringBuffer.append转换"this string"+"should"+"be"+"join"以获得最佳实践?

Evg*_*eev 10

1)常量表达式(JLS 15.28)就像"this string" + " should" + " be" + " joined"不需要StringBuilder一样,因为它在编译时计算成一个字符串"this string should be joined"

2)对于非常量表达式,编译器将自动应用StringBuilder.也就是说,"string" + var相当于new StringBuilder().append("string").append(var).toString();

我们只需要在动态构造字符串时显式使用StringBuilder,就像这里一样

    StringBuilder s = new StringBuilder();
    for (String e : arr) {
        s.append(e);
    }
Run Code Online (Sandbox Code Playgroud)