Что такое автоупаковка и распаковка в Java?
Утобоксинг :
Автоупаковка — это функция в java, которая автоматически преобразует примитивный тип данных в соответствующий объект класса-оболочки. Например, преобразование int в Integer, double в Double и так далее.
Самый простой пример автобокса:
Символ ch = 'c'
где «c» — это примитивный тип (char), который автоматически преобразуется в соответствующий класс-оболочку (Character).
Где это может быть полезно во время практики кодирования?
Автоупаковка полезна со списком (например, ArrayList, LinkedList и т. д.). Возьмем пример ArrayList.
Как мы знаем, ArrayList содержит только объект, а не примитивный тип данных, что означает, что мы можем хранить объект класса-оболочки, но мы не можем хранить примитивный тип данных внутри ArrayList. Например, ArrayList<Integer> arr = new ArrayList<Integer>() ; это действительно. Но ArrayList<int> arr = new ArrayList<int>() ; это недействительно.
Рассмотрим фрагмент кода, написанный ниже.
Хотя мы добавляем значения int как примитивный тип, а не объекты Integer, код успешно компилируется и не вызывает ошибки времени компиляции. Потому что компилятор JVM преобразует предыдущий код в следующий код:
Здесь преобразование примитивного типа int в класс-оболочку Integer во время операции добавления называется автоупаковкой.
Распаковка:
Распаковка — это функция в java, которая автоматически преобразует объект класса-оболочки в соответствующий примитивный тип данных. Например, преобразование Integer в int, Double в double и так далее.
Распаковка — это обратный процесс автоупаковки.
Где это может быть полезно во время практики кодирования?
Распаковка помогает программистам, так как упрощает выполнение некоторых операций, таких как арифметические операции со структурой данных, в которой хранится объект класса-оболочки, такой как список. Для примера:
Несмотря на то, что значения, хранящиеся внутри списка (arr), имеют тип Integer, когда мы добавляем эти значения к переменной total типа int, значения Integer автоматически преобразуются в int. Это облегчит программисту выполнение арифметических операций.
Код успешно компилируется и не вызывает ошибки времени компиляции. Потому что компилятор JVM преобразует предыдущий код в следующий код:
Здесь преобразование int (примитивный тип) в Integer (объект класса Wrapper) называется распаковкой.
Следующая таблица полезна, так как показывает примитивный тип данных с соответствующим классом-оболочкой.

![В любом случае, что такое связанный список? [Часть 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































