+
рассматривается как конкатенация строк, потому что строка находится на одной стороне операнда - это также будет работать на 1+""
.Таким образом, 1
неявно преобразуется в строку "1"
и ""
соединяется с ней, что приводит к ""+"1"
=> "1"
.
Это иногда используется как быстрый и грязный способ преобразованияцелочисленная переменная для String, например
String s = "" + myInt;
Но «правильный» способ сделать это будет:
String s = Integer.toString(myInt);
или альтернативно:
String s = String.valueOf(myInt);
Редактировать:
Чтобы уточнить, компилятор делает это определение и вставляет код, который преобразует целое число в строку перед выполнением конкатенации.
Таким образом, в основном компилятор видит:
String s = "" + myInt;
И эффективно создает байт-код, эквивалентный
String s = "" + String.valueOf(myInt)
Хотя это, вероятно, на практике оптимизирует конкатенацию.