Какво представлява AutoBoxing и unboxing в Java?



Тази статия ще ви даде изчерпателен подход към Autoboxing в Java заедно с някои примери за по-добро разбиране.

Повечето пъти използваме примитивни типове данни, докато пишем програма на произволен език. Но има ситуации, при които примитивните типове данни са недостатъчни в сферата на и е един от тях. За да преодолеем недостатъците в примитивните типове данни, използваме обвивки . Тази процедура се нарича Autoboxing. Ще обсъдим подробно Autoboxing в Java чрез докета по-долу:

Нека да започнем.





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

Боксът и автобоксът често се използват за обозначаване на една и съща концепция. Но в действителност те не са абсолютно еднакви. Нека първо поговорим за концепцията за бокса. Какво е бокс? Звучи сякаш държим нещо в кутията, нали? Да, когато казваме, че боксираме или опаковаме примитивен тип данни, това означава, че го опаковаме, за да образуваме обект. Все още объркан? Да вземем пример.

int FirstNumber = 1

Променливата ‘FirstNumber’ е от тип int, който е a . Ами сега, ако искам да преобразувам променлива ‘FirstNumber’ в обект? Java предоставя начин за това.



Integer SecondNumber = ново цяло число (2)

Забележете, че ‘SecondNumber’ не е от тип int, но е обект от тип Integer. Този процес на преобразуване на примитивни типове данни в обект се нарича бокс. Може да попитате как е възможно това? Нека помислим кой е най-простият начин за изпълнение на тази задача. Можем да създадем клас съдържащ един атрибут от тип int, конструктор, който приема стойност тип int и го присвоява на нашия атрибут на клас, както и някои методи за манипулиране на тази стойност int. За да разберете повече за това, направете справка с това документ .

създайте пакет в Java

Видяхме как типът int може да бъде преобразуван в Java. Има ли начин за преобразуване на други примитивни типове данни в обекти? Да, Java има съответни клас на обвивка за различни примитивни типове данни. Ще ги разгледаме в следващия раздел на тази публикация.

Автобокс

На този етап знаем какво е бокс. Сега нека разберем какво е Autoboxing. когато процесът на бокс се извършва от компилатора, без изрично да се споменава, се нарича автобокс.



Нека разберем това с пример:

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 () е статичен метод. За повече примери вижте документи .

Разпаковане и Автоматично кутиране

Видяхме как от примитивния тип данни се преобразуват в обекти. Но това е само половината от историята. Другата половина на историята е преобразуване на обект от клас на обвивка на тип в неговия примитивен тип данни разопаковане .

Например-

Integer FirstNumber = ново Integer (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Изход - 1

Автобокс- Когато процесът на разопаковане, извършен от компилатора без изрично споменаване, се нарича Autounboxing.

Например-

Integer Number = нов Integer (20) int num = Number

Горният код е пример за Autounboxing. В следващия раздел ще научим за класовете обвивки.

Опаковъчни класове

Преобразувахме в тип променлива intl Integer тип обект. Този цял клас е клас на обвивка. В Java е наличен клас на обвивка за всеки . Тези класове обвивки ни помагат при преобразуването на променлива от примитивен тип в съответния обект тип клас обвивка. Методите на класовете на обвивки са полезни при манипулиране на стойностите.

Таблицата по-долу ни разказва за примитивния тип данни и съответния клас на обвивката.

Примитивен тип Клас обвивка

булев

Булев

чао

Байт

char

Характер

как да конвертирате число в двоично в python

плувка

Плувка

инт

Цяло число

дълго

Дълго

къс

Къс

двойно

Двойна

Забележете главни букви в класовете Wrapper.

По този начин стигнахме до края на тази статия за „Автобоксиране в Java“. Ако искате да научите повече, разгледайте от Edureka, доверена компания за онлайн обучение. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог „автобокс в Java“ и ние ще се свържем с вас възможно най-скоро.