Hva er AutoBoxing og unboxing i Java?



Denne artikkelen vil gi deg en omfattende tilnærming til autoboksing i Java sammen med noen eksempler for bedre forståelse.

De fleste ganger bruker vi primitive datatyper mens vi skriver et program på hvilket som helst språk. Men det er situasjoner der primitive datatyper kommer til kort i riket av og er en av dem. For å overvinne ulempene med primitive datatyper bruker vi innpakninger . Denne prosedyren kalles autoboksing. Vi vil diskutere detaljert autoboksing i Java gjennom docket nedenfor:

La oss begynne.





Hva er boksing og autoboksing i Java?

Boksing og autoboksing brukes ofte til å referere til det samme konseptet. Men i virkeligheten er de ikke helt like. La oss først snakke om begrepet boksing. Hva er boksing? Høres ut som om vi holder noe inne i en boks, ikke sant? Ja, når vi sier at vi bokser eller pakker inn en primitiv datatype, betyr det at vi pakker den inn for å danne et objekt. Fortsatt forvirret? La oss ta et eksempel.

int FirstNumber = 1

Variabel ‘FirstNumber’ er av typen int som er en . Nå, hva om jeg vil konvertere variabelen ‘FirstNumber’ til et objekt? Java gir en måte å gjøre det på.



Integer SecondNumber = nytt Integer (2)

Legg merke til at ‘SecondNumber’ ikke er av typen int, men det er et objekt av typen Integer. Denne prosessen med å konvertere primitive datatyper til et objekt kalles boksing. Du kan spørre hvordan dette er mulig? La oss tenke på hva som er den enkleste måten å utføre denne oppgaven på. Vi kan lage en klasse inneholder et enkelt attributt av typen int, en konstruktør som tar en int-typeverdi og tildeler den til klasse-attributtet vårt, og noen metoder for å manipulere denne int-verdien. For å finne ut mer om det, se dette dokument .

Vi så hvordan int type kan konverteres til Java. Er det en måte å konvertere andre primitive datatyper til objekter? Ja, Java har henholdsvis innpakningsklasse for forskjellige primitive datatyper. Vi vil se på dem i neste del av dette innlegget.

Autoboksing

På dette tidspunktet vet vi hva som er boksing. La oss nå forstå hva som er autoboksing. når prosessen med boksing utføres av kompilatoren uten eksplisitt nevnt, kalles autoboksing.



La oss forstå dette med et eksempel:

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) } }

Som vi diskuterte tidligere godtar bare objekter og primitiv datatype fungerer ikke. I det ovennevnte programmet konverterte vi ikke typen til objekter av helhetstypen, men programmet kjøres fortsatt uten feil. Hvordan? Svaret på dette spørsmålet er at kompilatoren automatisk utførte bokseprosessen før den la verdien til 'Mylist', derav navnet Autoboxing.

Mylist.add (Integer.valueOf (i))

Ovennevnte kodelinje er lagt til i programmet vårt av kompilatoren.

Merk- I den ovennevnte linjene med kodeklassenavn‘Integer ’er nevnt før metoden valueOf () siden valueOf () er en statisk metode. For flere eksempler, se dokumenter .

Unboxing og Autounboxing

Vi så hvordan av den primitive datatypen blir konvertert til objekter. Men dette er bare halvparten av historien. Den andre halvdelen av historien konverterer et objekt av en type wrapper-klasse til sin primitive datatype kalles unboxing .

For eksempel-

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

Utgang - 1

Autounboxing- Når prosessen med unboxing utført av kompilatoren uten å nevne eksplisitt kalles Autounboxing.

hva er printwriter i java

For eksempel-

Heltall = nytt Heltall (20) int num = Antall

Ovennevnte kode er et eksempel på Autounboxing. I neste avsnitt vil vi lære om emballasjeklasser.

Pakkeklasser

Vi konverterte i type variabel intl Objekt av helhetstype. Denne heltallsklassen er en wrapper-klasse. I Java er en wrapper-klasse tilgjengelig for hver . Disse wrapper-klassene hjelper oss med å konvertere en variabel fra primitiv type til respektive wrapper class-objekt. Metodene for innpakningsklasser er nyttige for å manipulere verdiene.

Tabellen nedenfor forteller oss om den primitive datatypen og dens respektive innpakningsklasse.

Primitiv type Pakkeklasse

boolsk

Boolsk

Ha det

Byte

røye

Karakter

flyte

Flyte

int

Heltall

lang

Lang

kort

Kort

dobbelt

Dobbelt

Legg merke til store bokstaver i Wrapper-klassene.

kan du kaste en dobbel til en int

Dermed har vi kommet til en slutt på denne artikkelen om ‘Autoboxing in Java’. Hvis du ønsker å lære mer, sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplærings- og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne bloggen 'autoboksing i Java', så kommer vi tilbake til deg så snart som mulig.