Автор оригинала: Nikunj Gupta.
Любой разработчик Java должен был использовать одно из следующих действий при работе со строками.
Строка + "мир";
Строка + "из Java";
Строка + str2;
Вышеперечисленные 3 способа объединения строки с помощью оператора +
работают по-разному. Давайте разберемся с ними по очереди.
1. Строка + “мир”;
Возможно, вы думаете, что приведенный выше код использует два строковых литерала и объединяет их для создания новой строки. Но это не то, что происходит. Компилятор java (javac) является интеллектуальным, он обнаружит, что вы пытаетесь добавить два строковых литерала и автоматически преобразуете Строку + "мир";
в Строку;
при создании файла “.class”.
2. Строка + “из Java”;
Это снова просто кажется, что добавляются две строки, одна из которых является строковым объектом, а другая-строковым литералом. За кадром код для этого выглядит так – String StringBuilder(str).append("из Java").toString();
. Да, оператор +
внутренне использует метод append()
StringBuilder для объединения двух строк.
3. Строка + str2;
То же самое относится и к этому, он также использует метод append()
StringBuilder. За кадром кода это будет выглядеть так – String StringBuilder(str1).добавить(str2).toString();
Оригинал: “https://www.codementor.io/@nikunjgupta/behind-the-scene-of-a-concatenation-of-two-strings-using-plus-operator-10ad7v8f38”