Этот вопрос возник, когда я преподавал некоторые основы Java своему другу. В Java у вас есть int
и Целое число
. Integer
– это класс-оболочка для int
таким образом, логически вам нужно было бы создать новый Integer
подобный этому.
Integer i = new Integer(5);
Вы определенно можете это сделать, и это абсолютно справедливо. Но вы также можете сделать Integer;
. Благодаря чему-то, что называется автобоксингом.
Бокс – это процесс упаковки примитивного значения в объект класса эквивалентного типа. Распаковка относится к противоположному направлению, переходящему от объекта к примитиву.
Итак, что же происходит на заднем плане. 5
анализируется компилятором как int
. Компилятор замечает, что вы хотите иметь экземпляр класса-оболочки Integer
таким образом, он автоматически помещает значение в экземпляр Integer
. Это происходит в фоновом режиме, никаких действий не требуется.
Автобоксинг позволяет нам писать более приятный код. В следующей таблице показаны примитивные типы и соответствующие им классы-оболочки.
Логический | логический |
Байт | байт |
Характер | обуглить |
Поплавок | плыть |
Целое число | в |
Длинный | длинный |
Короткий | короткий |
Двойной | двойной |
Оригинал: “https://dev.to/pavel_polivka/why-is-integer-i-5-valid-statement-in-java-2h57”