Назад к вопросам
Junior
84
questionbank
Что такое обертки (Wrapper классы) в Java?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Обертки (Wrapper классы) в Java — это специальные классы, представляющие собой ссылочные типы данных для примитивных типов. Они позволяют работать с примитивами как с объектами.
Основные характеристики и назначение:
- Объекты для примитивов: Каждый примитивный тип (
byte,short,int,long,float,double,boolean,char) имеет соответствующий класс-обертку (Byte,Short,Integer,Long,Float,Double,Boolean,Character). - Наследование от
Object: Все классы-обертки являются потомками классаObject, что позволяет использовать их в коллекциях (таких какArrayList,HashMap,HashSet) и других API, работающих с объектами. - Поля и методы: Классы-обертки содержат полезные методы для работы с соответствующими примитивными значениями (например, парсинг строк, сравнение). Также они содержат константы (например,
Integer.MAX_VALUE,Integer.MIN_VALUE). - Автоупаковка (Autoboxing) и автораспаковка (Unboxing): Механизмы Java, позволяющие автоматически преобразовывать примитивный тип в его обертку и обратно.
// Автоупаковка Integer numObject = 10; // Примитив int автоматически упаковывается в Integer // Автораспаковка int numPrimitive = numObject; // Объект Integer автоматически распаковывается в примитив int - Неизменяемость (Immutability): Объекты классов-оберток неизменяемы. После создания их значение нельзя изменить.
Integer a = 5; Integer b = a; // b ссылается на тот же объект a = 10; // a теперь ссылается на новый объект с значением 10, объект с 5 остался
Применение:
- Работа с коллекциями Java.
- Использование в Stream API.
- Nullable значения (объект-обертка может быть
null, примитив — нет). - Вспомогательные методы для преобразования типов и константы.
- В дженериках (Generics), которые не могут работать с примитивными типами напрямую.