Отчеты Lint StringBuilder влияет на производительность

в моем проекте я просто сделал проверку LINT, до сих пор им доволен. Но им любопытно, почему LINT сообщает, что использование StringBuilder медленное?

Я переключился с Eclipse на Android Studio некоторое время назад, те методы toString(), которые генерируются eclipse, чтобы получить лучший результат отладки:

@Override
public String toString()
{
    final StringBuilder builder = new StringBuilder();
    builder.append("param1");
    builder.append(param1);
    builder.append(", param2");
    builder.append(param2);
    builder.append("param3");
            ....
    return builder.toString();
}

В Studio сообщается о замене StringBuilder на String. С моей точки зрения, StringBuilder всегда был более быстрым и более дружественным к GC. Или DEX что-то умное там alreasy, я не знаю?

Я искал LINT Checks без какого-либо описания этого

Ответ 1

Простой ответ заключается в том, что, хотя нет никакой разницы в производительности, но это проще сделать:

String string = "param1" + param1 + ", param 2" + param2 + "param3".... (and so on)

Я предпочел бы этот подход просто потому, что он короче. За кулисами компилятор преобразует его в код, который вы только что упомянули, и генерируемый байткод точно такой же.

Если вы строите строку в цикле, то StringBuilder, безусловно, подходит.