Java Autoboxing и Unboxing
Содержание
Autoboxing и Unboxing - это функции, включенные в Java 1.5, где автоматическое преобразование происходит от примитивного типа до соответствующего класса класса Wrapper и Vice Versa.
Автобоксинг - это процесс преобразования данных примитивного типа в соответствующий экземпляр объекта класса-оболочки. Он включает в себя динамическое распределение памяти и инициализацию объекта для каждого примитива. В autoboxing нет необходимости явно конструировать объект.
Пример:
int j = 1000; Integer intr = j; // Автобоксирование
Распаковка
Unboxing - это процесс преобразования экземпляра оболочки в примитивный тип. Это процесс, посредством которого значение типа объекта в штучной упаковке автоматически распаковывается из оболочки, когда требуется его значение. Для этого нет необходимости вызывать метод, такой как doubleValue() или intValue().
Пример:
Integer intr = new Integer(100); int i = intr; // Unboxing
Когда требуется?
Когда метод ожидает объект класса-оболочки, но значение, которое передается как параметр, является примитивным типом. Когда примитивное значение присваивается переменной класса оболочки или наоборот.
Преимущества
Не нужно явно создавать объект и обертывать значение примитивного типа.
Неудобство
«Аутобоксинг» слишком неожиданен в своем поведении и может легко привести к затруднению распознавания ошибок.
Производительность
Autoboxing создает объекты, которые не ясно видны в коде. Поэтому, когда происходит аутобоксинг, производительность ухудшается.
Что такое класс Wrapper?
Класс-оболочка - это класс, который «обрывает» функциональность другого класса или компонента. То есть, он обертывает примитивный тип данных и придает ему внешний вид объекта. Преимущество состоит в том, что его можно использовать всякий раз, когда примитивный тип данных требуется как объект. Класс Wrapper обеспечивает широкий диапазон функций, которые должны выполняться на примитивных типах.