Что такое AutoBoxing и unboxing в Java?



В этой статье вы найдете комплексный подход к Autoboxing в Java вместе с некоторыми примерами для лучшего понимания.

В большинстве случаев мы используем примитивные типы данных при написании программы на любом языке. Но бывают ситуации, когда примитивные типы данных не соответствуют требованиям и один из них. Чтобы преодолеть недостатки примитивных типов данных, мы используем обертки . Эта процедура называется Autoboxing. Мы обсудим подробное автобоксирование в Java через докет ниже:

Давайте начнем.





Что такое бокс и автобокс в Java?

Бокс и автобокс часто используются для обозначения одного и того же понятия. Но на самом деле это не совсем то же самое. Давайте сначала поговорим о концепции бокса. Что такое бокс? Похоже, мы храним что-то в коробке, верно? Да, когда мы говорим, что упаковываем или упаковываем примитивный тип данных, это означает, что мы упаковываем его, чтобы сформировать объект. Все еще не понимаете? Возьмем пример.

int FirstNumber = 1

Переменная FirstNumber имеет тип int, который является . А что, если я хочу преобразовать переменную FirstNumber в объект? Java предоставляет способ сделать это.



Целое число SecondNumber = новое целое число (2)

Обратите внимание, что «SecondNumber» не имеет типа int, но это объект типа Integer. Этот процесс преобразования примитивных типов данных в объект называется боксом. Вы можете спросить, как это возможно? Давайте подумаем, как проще всего решить эту задачу. Мы можем создать класс содержащий единственный атрибут типа int, конструктор, который принимает значение типа int и присваивает его нашему атрибуту класса, а также некоторые методы для управления этим значением int. Чтобы узнать больше об этом, обратитесь к этому документ .

Мы увидели, как тип int можно преобразовать в Java. Есть ли способ преобразовать другие примитивные типы данных в объекты? Да, в Java есть соответствующие класс-оболочка для разных примитивных типов данных. Мы рассмотрим их в следующем разделе этого поста.

в чем разница между hashmap и hashtable

Автобокс

На данный момент мы знаем, что такое бокс. Теперь давайте разберемся, что такое автобокс. когда процесс упаковки выполняется компилятором без явного упоминания, это называется автобоксингом.



Давайте разберемся с этим на примере:

import java.util.ArrayList import java.util.Listclass Box {public static void main (String [] args) {List Mylist = new ArrayList () for (int i = 0 i<10 i++) Mylist.add(i) } }

Как мы обсуждали ранее принимает только объекты, и примитивный тип данных не работает. В приведенной выше программе мы не преобразовали тип в объекты типа Integer, но программа выполняется без ошибок. Как? Ответ на этот вопрос заключается в том, что компилятор автоматически выполнил процесс упаковки перед добавлением значения в «Mylist», отсюда и название Autoboxing.

Mylist.add (Integer.valueOf (i))

Вышеупомянутая строка кода добавляется в нашу программу компилятором.

Заметка- В приведенной выше строке кода имя класса «Integer» упоминается перед методом valueOf (), поскольку valueOf () является статическим методом. Дополнительные примеры см. В документы .

Распаковка и автоунбоксинг

Мы видели как примитивного типа данных преобразуются в объекты. Но это только половина дела. Другая половина истории - это преобразование объекта класса-оболочки типа в его примитивный тип данных, который называется распаковка .

Например-

Целое число FirstNumber = новое целое число (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Выход- 1

Автоунбоксинг Когда процесс распаковки, выполняемый компилятором без явного упоминания, называется Autounboxing.

Например-

Целое число = новое целое число (20) int num = число

Приведенный выше код является примером автоотключения. В следующем разделе мы узнаем о классах-оболочках.

Классы обертки

Конвертировали в переменную типа intl объект типа Integer. Этот целочисленный класс является классом-оболочкой. В Java класс-оболочка доступен для каждого . Эти классы-оболочки помогают нам преобразовывать переменную из примитивного типа в соответствующий объект типа класса-оболочки. Методы классов-оболочек полезны для управления значениями.

В таблице ниже рассказывается о примитивном типе данных и соответствующем ему классе-оболочке.

Примитивный тип Класс Wrapper

логический

Булево

до свидания

Байт

char

символ

плавать

Плавать

int

Целое число

длинная

Длинная

короткая

короткий

двойной

Двойной

Обратите внимание на заглавные буквы в классах Wrapper.

На этом мы подошли к концу статьи об автобоксировании в Java. Если вы хотите узнать больше, ознакомьтесь с от Edureka, надежной компании онлайн-обучения. Курс обучения и сертификации по Java J2EE и SOA от Edureka разработан, чтобы обучить вас базовым и продвинутым концепциям Java, а также различным средам Java, таким как Hibernate и Spring.

Есть вопрос к нам? Пожалуйста, укажите это в разделе комментариев этого блога «автобоксирование в Java», и мы свяжемся с вами как можно скорее.