Описание тега boxing

Упаковка - это когда тип значения заключен в оболочку ссылочного типа с целью его использования, когда требуется полиморфизм (преобразование в объект или интерфейс).

В Java и некоторых подобных языках существует различие между примитивами (или типами значений) и ссылочными типами. Примитивные типы работают как простые значения и при использовании в качестве параметра методов не изменяют исходный операнд. С другой стороны, ссылочные типы могут быть изменены при передаче в методы и имеют связанные классы, определяющие объекты этого типа (тогда как примитивы более "встроены"). Если смотреть с точки зрения языка, такого как C или C++, экземпляры ссылочных типов можно рассматривать как указатели, ссылки на которые автоматически отменяются.

Упаковка происходит, когда примитивный тип значения используется вместо соответствующего ссылочного типа. В Java, например, если значение типаint используется там, где Integer ожидается, компилятор автоматически заключит значение в Integer объект.