Я нашел пример, где я не могу найти количество коробок и распаковок в коде Java ниже:
Integer x = 5; int y = x + x;
Я бы сказал, что существует один тип распаковки (int y = x + x), но яЯ не уверен в этом.Бокс тоже есть?
int y = x + x
Существует только бокс
Integer x = 5
Из документов:
Если p является значением типа int, тогда преобразование в бокс преобразует p в ссылку r класса и типаЦелое число, такое, что r.intValue () == p
Почему?Поскольку мы ссылаемся только один раз, и в нем есть две распаковки:
Из документов
Если r является ссылкой типа Integer, то преобразование без коробки преобразует r в r.intValue ()
Почему?Потому что мы звоним два раза x.IntValue()
x.IntValue()
Следуя этой документации из Бокс и распаковка
Измените значения с Примитивного значения на Значения класса Wrapper в примере Java
Integer a = 10; int b = a;
https://youtu.be/96pq0mpFz9M
В Integer x = 5 есть один бокс.int 5 упакован в Integer.
int
Integer
В int y = x + x есть два распаковки: Integer x распаковывается дважды.
Integer x