Wat is autoboxen en unboxen in Java?



Dit artikel geeft u een uitgebreide benadering van Autoboxing in Java, samen met enkele voorbeelden voor een beter begrip.

Meestal gebruiken we primitieve gegevenstypen bij het schrijven van een programma in elke taal. Maar er zijn situaties waarin primitieve gegevenstypen tekortschieten op het gebied van en is een van hen. Om de nadelen van primitieve datatypes te overwinnen, gebruiken we wikkels . Deze procedure heet Autoboxing. We zullen gedetailleerde Autoboxing in Java bespreken via de onderstaande rol:

Laten we beginnen.





Wat is boksen en autoboxen in Java?

Boksen en autoboxen worden vaak gebruikt om naar hetzelfde concept te verwijzen. Maar in werkelijkheid zijn ze niet precies hetzelfde. Laten we het eerst hebben over het concept van boksen. Wat is boksen? Klinkt alsof we iets in een doos bewaren, toch? Ja, als we zeggen dat we een primitief gegevenstype in dozen doen of inpakken, betekent dit dat we het inpakken om een ​​object te vormen. Nog steeds verward? Laten we een voorbeeld nemen.

int FirstNumber = 1

Variabele ‘FirstNumber’ is van het type int wat een is . Nu, wat als ik de variabele ‘FirstNumber’ in een object wil converteren? Java biedt een manier om dat te doen.



Integer SecondNumber = nieuw geheel getal (2)

Merk op dat ‘SecondNumber’ niet van het type int is, maar een object van het type Integer. Dit proces van het omzetten van primitieve gegevenstypen in een object wordt boksen genoemd. U vraagt ​​zich misschien af ​​hoe dit mogelijk is? Laten we eens kijken wat de eenvoudigste manier is om deze taak te volbrengen. We kunnen een klasse met een enkel attribuut van het type int, een constructor die een int-typewaarde neemt en deze toewijst aan ons class-attribuut, en enkele methoden om deze int-waarde te manipuleren. Raadpleeg dit voor meer informatie document .

We hebben gezien hoe int-type kan worden geconverteerd naar Java. Is er een manier om andere primitieve gegevenstypen om te zetten in objecten? Ja, Java heeft respectieve wrapper klasse voor verschillende primitieve gegevenstypen. We zullen ze in de volgende sectie van dit bericht bekijken.

Autoboxing

Op dit punt weten we wat boksen is. Laten we nu eens kijken wat autoboxen is. wanneer het proces van boksen wordt gedaan door de compiler zonder expliciet vermeld, heet autoboxing.



Laten we dit met een voorbeeld begrijpen:

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

Zoals we eerder hebben besproken accepteert alleen objecten en primitief gegevenstype werkt niet. In het bovenstaande programma hebben we in type niet geconverteerd naar objecten van het type Integer, maar het programma wordt zonder fouten uitgevoerd. Hoe? Het antwoord op deze vraag is dat de compiler automatisch het boksproces heeft uitgevoerd voordat hij de waarde toevoegt aan ‘Mylist’, vandaar de naam Autoboxing.

Mylist.add (Integer.valueOf (i))

De bovenstaande regel code wordt door de compiler aan ons programma toegevoegd.

Opmerking- In de bovenstaande regel met code wordt klassennaam ‘Geheel getal’ vermeld vóór de methode valueOf () aangezien valueOf () een statische methode is. Raadpleeg voor meer voorbeelden het documenten .

Unboxing en Autounboxing

We hebben gezien hoe van het primitieve datatype worden omgezet in objecten. Maar dit is slechts de helft van het verhaal. De andere helft van het verhaal is het converteren van een object van een type wrapper-klasse naar het primitieve gegevenstype dat wordt genoemd uitpakken .

Bijvoorbeeld-

Geheel getal FirstNumber = nieuw geheel getal (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Uitgang- 1

Autounboxen Wanneer het proces van unboxen dat door de compiler wordt gedaan zonder expliciet te vermelden, Autounboxing wordt genoemd.

Bijvoorbeeld-

Geheel getal Getal = nieuw Geheel getal (20) int getal = Getal

De bovenstaande code is een voorbeeld van Autounboxing. In de volgende sectie zullen we leren over wrapper-klassen.

Wikkelklassen

We hebben het type variabele intl geconverteerd Geheel getal type object. Deze integer-klasse is een wrapper-klasse. In Java is voor elk een wrapper-klasse beschikbaar . Deze wrapper-klassen helpen ons bij het converteren van een variabele van primitief type naar respectief wrapper-class-object. De methoden van wrapper-klassen zijn handig bij het manipuleren van de waarden.

De onderstaande tabel vertelt ons over het primitieve gegevenstype en de respectievelijke wrapper-klasse.

Primitief type Wikkelklasse

boolean

Boolean

doei

Byte

char

Karakter

wat is een daemon-thread

vlotter

Vlotter

int

Geheel getal

lang

Lang

kort

Kort

dubbele

Dubbele

Let op het hoofdlettergebruik in de Wrapper-klassen.

Hiermee zijn we aan het einde gekomen van dit artikel over ‘Autoboxen in Java’. Als je meer wilt weten, bekijk dan de door Edureka, een vertrouwd online leerbedrijf. Edureka's Java J2EE- en SOA-trainings- en certificeringscursus is ontworpen om u te trainen in zowel kern- als geavanceerde Java-concepten samen met verschillende Java-frameworks zoals Hibernate & Spring.

Heeft u een vraag voor ons? Vermeld het in het commentaargedeelte van deze blog 'autoboxen in Java' en we nemen zo snel mogelijk contact met je op.