За кулисами объединения двух строк с помощью оператора +(плюс).
Любой разработчик Java должен был использовать одно из следующих средств при работе со строками.
String str1 = "hello " + "world";
String str2 = str + "of Java";
String str3 = str1 + str2;
Вышеупомянутые 3 способа объединить строку, используя +
операторы работают по-разному.
Давайте доберемся до них один за другим.
1. String str1 = "hello " + "world";
Вы можете подумать, что приведенный выше код принимает два строковых литерала и объединяет их для создания новой строки. Но это не то, что происходит. Компилятор Java (javac) умен, он обнаружит, что вы пытаетесь добавить два строковых литерала, и автоматически преобразует String str1 = "hello " + "world";
к String str1 = "hello world";
при создании файла «.class».
2. String str2 = str + "of Java";
Это снова выглядит так, как будто добавляются две строки, одна из которых является строковым объектом, а другая — строковым литералом. Код за кулисами выглядит так: String str2 = new StringBuilder(str).append("of Java").toString();
. Да, +
оператор внутренне использует append()
метод StringBuilder для объединения двух строк.
3. String str3 = str1 + str2;
То же самое и с этим, он также использует append()
метод StringBuilder. Код за сценой будет выглядеть так: String str3 = new StringBuilder(str1).append(str2).toString();