Для
String string = "a"+"b"+"c";
Компилятор генерирует полную строку. Байт-код выглядит так. Большинство компиляторов поступят именно так, поскольку они работают с константами. Объединение переменных может обрабатываться по-разному в зависимости от версии JDK.
0 ldc <String "abc"> [16]
2 astore_1 [string]
Таким образом, следующее будет ненужными накладными расходами.
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("a");
sBuilder.append("b");
sBuilder.append("c");
Однако, если вам когда-нибудь понадобится вызвать append on тот же объект StringBuilder
, вы можете сделать следующее:
StringBuilder sBuilder = new StringBuilder();
sBuilder.append("a").append("b").append("c");
StringBuilder.append
возвращает собственный экземпляр.