Java бокс или распаковка - PullRequest
0 голосов
/ 24 мая 2018

Я нашел пример, где я не могу найти количество коробок и распаковок в коде Java ниже:

Integer x = 5;
int y = x + x;

Я бы сказал, что существует один тип распаковки (int y = x + x), но яЯ не уверен в этом.Бокс тоже есть?

Ответы [ 3 ]

0 голосов
/ 24 мая 2018

Существует только бокс

Integer x = 5

Из документов:

Если p является значением типа int, тогда преобразование в бокс преобразует p в ссылку r класса и типаЦелое число, такое, что r.intValue () == p

Почему?Поскольку мы ссылаемся только один раз, и в нем есть две распаковки:

int y = x + x

Из документов

Если r является ссылкой типа Integer, то преобразование без коробки преобразует r в r.intValue ()

Почему?Потому что мы звоним два раза x.IntValue()

Следуя этой документации из Бокс и распаковка

0 голосов
/ 07 апреля 2019

Измените значения с Примитивного значения на Значения класса Wrapper в примере Java

Integer a = 10;
int b = a;

https://youtu.be/96pq0mpFz9M

0 голосов
/ 24 мая 2018

В Integer x = 5 есть один бокс.int 5 упакован в Integer.

В int y = x + x есть два распаковки: Integer x распаковывается дважды.

...