Vad är AutoBoxing och unboxing i Java?



Den här artikeln ger dig en omfattande strategi för autoboxing i Java tillsammans med några exempel för bättre förståelse.

För det mesta använder vi primitiva datatyper när vi skriver ett program på vilket språk som helst. Men det finns situationer där primitiva datatyper brister inom området och är en av dem. För att övervinna nackdelarna med primitiva datatyper använder vi omslag . Denna procedur kallas Autoboxing. Vi kommer att diskutera detaljerad autoboxning i Java via dockan nedan:

Låt oss börja.





Vad är boxning och autoboxning i Java?

Boxning och autoboxning används ofta för att hänvisa till samma koncept. Men i verkligheten är de inte exakt desamma. Låt oss först prata om begreppet boxning. Vad är boxning? Det låter som om vi håller något i en låda, eller hur? Ja, när vi säger att vi boxar eller slår in en primitiv datatyp betyder det att vi slår in den för att bilda ett objekt. Fortfarande förvirrad? Låt oss ta ett exempel.

int FirstNumber = 1

Variabel 'FirstNumber' är av typen int som är en . Tänk nu om jag vill konvertera variabeln 'FirstNumber' till ett objekt? Java ger ett sätt att göra det.



Integer SecondNumber = nytt heltal (2)

Observera att ”SecondNumber” inte är av typen int men det är ett objekt av typen Integer. Denna process för att konvertera primitiva datatyper till ett objekt kallas boxning. Du kanske frågar hur det är möjligt? Låt oss tänka på vad som är det enklaste sättet att utföra denna uppgift. Vi kan skapa en klass innehållande ett enda attribut av typen int, en konstruktör som tar ett int-typvärde och tilldelar det till vårt klassattribut och några metoder för att manipulera detta int-värde. För att ta reda på mer om det, hänvisa detta dokumentera .

Vi såg hur int-typ kan omvandlas till Java. Finns det ett sätt att konvertera andra primitiva datatyper till objekt? Ja, Java har respektive omslagsklass för olika primitiva datatyper. Vi kommer att undersöka dem i nästa avsnitt av det här inlägget.

Autoboxing

Vid denna tidpunkt vet vi vad som är boxning. Låt oss nu förstå vad som är autoboxing. när processen för boxning görs av kompilatorn utan att uttryckligen nämnas, kallas autoboxing.



Låt oss förstå detta med ett exempel:

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

Som vi diskuterade tidigare accepterar endast objekt och primitiv datatyp fungerar inte. I ovanstående program konverterade vi inte in typ till objekt av heltalstyp som fortfarande körs utan något fel. På vilket sätt? Svaret på den här frågan är att kompilatorn automatiskt gjorde boxningsprocessen innan han lade värdet till 'Mylist', därav namnet Autoboxing.

Mylist.add (Integer.valueOf (i))

Ovanstående kodrad läggs till i vårt program av kompilatorn.

Notera- I kodraden ovan nämns namnet 'Integer' före metoden valueOf () eftersom valueOf () är en statisk metod. För fler exempel hänvisas till docs .

hur man stoppar ett program i java

Unboxing och Autounboxing

Vi såg hur av den primitiva datatypen omvandlas till objekt. Men det här är bara hälften av historien. Den andra halvan av historien konverterar ett objekt av en typ omslagsklass till dess primitiva datatyp kallas avboxning .

Till exempel-

Heltal FirstNumber = nytt Integer (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Utgång - 1

sätt att skapa singleton-klass i java

Autounboxing- När unboxing-processen som görs av kompilatorn utan att uttryckligen nämna kallas Autounboxing.

Till exempel-

Heltalsnummer = nytt Heltals (20) int nummer = Antal

Ovanstående kod är ett exempel på Autounboxing. I nästa avsnitt lär vi oss om omslagsklasser.

Wrapper-klasser

Vi konverterade i typvariabel intl Objekt av heltalstyp. Denna heltalsklass är en omslagsklass. I Java finns en wrapper-klass för varje . Dessa omslagsklasser hjälper oss att konvertera en variabel från primitiv typ till respektive omslagsklassobjekt. Metoderna för omslagsklasser är användbara för att manipulera värdena.

Tabellen nedan berättar om den primitiva datatypen och dess respektive omslagsklass.

Primitiv typ Förpackningsklass

booleska

Boolean

Hejdå

Byte

röding

Karaktär

flyta

Flyta

int

Heltal

lång

Lång

kort

Kort

dubbel

Dubbel

vad är apache gnist vs hadoop

Lägg märke till versalerna i Wrapper-klasserna.

Således har vi kommit till slutet av den här artikeln om ”Autoboxing in Java”. Om du vill veta mer, kolla in av Edureka, ett pålitligt inlärningsföretag online. Edurekas Java J2EE- och SOA-utbildning och certifieringskurs är utformad för att träna dig för både grundläggande och avancerade Java-koncept tillsammans med olika Java-ramverk som Hibernate & Spring.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna blogg ”autoboxing i Java” så återkommer vi till dig så snart som möjligt.