Kaj je AutoBoxing in unboxing v Javi?



V tem članku boste našli celovit pristop k samodejnemu zaboju v Javi in ​​nekaj primerov za boljše razumevanje.

Med pisanjem programa v katerem koli jeziku največkrat uporabljamo primitivne podatkovne tipe. Vendar obstajajo situacije, ko primitivni tipi podatkov na področju in je eden izmed njih. Za premagovanje pomanjkljivosti primitivnih podatkovnih tipov uporabljamo ovoji . Ta postopek se imenuje Autoboxing. Podroben samodejni zaboj v Javi bomo obravnavali v spodnjem dokumentu:

Začnimo.





Kaj je boks in samodejni boks v Javi?

Boks in avtoboks se pogosto uporabljata za sklicevanje na isti koncept. Toda v resnici niso povsem enaki. Najprej se pogovorimo o konceptu boksa. Kaj je boks? Sliši se, kot da nekaj hranimo v škatli, kajne? Da, če rečemo, da boksamo ali previjamo primitivni podatkovni tip, to pomeni, da ga zavijemo v obliko predmeta. Še vedno zmeden? Vzemimo primer.

int FirstNumber = 1

Spremenljivka 'FirstNumber' je vrste int, ki je . Kaj pa, če želim spremenljivko ‘FirstNumber’ pretvoriti v objekt? Java omogoča način za to.



Integer SecondNumber = novo celo število (2)

Upoštevajte, da 'SecondNumber' ni tipa int, ampak je objekt tipa Integer. Ta postopek pretvorbe primitivnih podatkovnih vrst v objekt se imenuje boks. Lahko se vprašate, kako je to mogoče? Pomislimo, kakšen je najpreprostejši način za izpolnitev te naloge. Ustvarimo lahko razred vsebuje en atribut tipa int, konstruktor, ki vzame vrednost tipa int in jo dodeli našemu atributu razreda, ter nekatere metode za obdelavo te vrednosti int. Če želite izvedeti več o tem, glejte to dokument .

Videli smo, kako je mogoče vrsto int pretvoriti v Javo. Ali obstaja način pretvorbe drugih primitivnih podatkovnih vrst v predmete? Da, Java ima ustrezne razred zavijanja za različne primitivne tipe podatkov. Preučili jih bomo v naslednjem poglavju tega prispevka.

Avtoboks

V tem trenutku vemo, kaj je boks. Zdaj pa razumimo, kaj je Autoboxing. ko postopek boksa opravi prevajalnik, ne da bi bil izrecno omenjen, se imenuje avtoboks.



Razumimo to na primeru:

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

Kot smo že omenili sprejema samo predmete in primitivni podatkovni tip ne deluje. V zgornjem programu tipa nismo pretvorili v predmete tipa Integer, ki jih program še vedno izvaja brez napak. Kako? Odgovor na to vprašanje je, da je prevajalnik samodejno izvedel postopek boksa, preden je vrednost dodal na 'Mylist', od tod tudi ime Autoboxing.

Mylist.add (Integer.valueOf (i))

Zgornjo vrstico kode v naš program doda prevajalnik.

Opomba- V zgornji vrstici kode je ime razreda ‘Integer’ omenjeno pred metodo valueOf (), saj je valueOf () statična metoda. Za več primerov glejte dokumenti .

Razpakiranje in samodejno pošiljanje

Videli smo kako primitivnega podatkovnega tipa pretvorijo v predmete. A to je le polovica zgodbe. Druga polovica zgodbe je pretvorba predmeta razreda ovojnega tipa v njegov primitivni podatkovni tip razpakiranje .

Na primer-

Integer FirstNumber = novo celo število (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Izhod - 1

Avtoboksanje- Ko se postopek razpakiranja, ki ga opravi prevajalnik brez izrecne omembe, imenuje Autounboxing.

Na primer-

Število celo število = novo Celo število (20) int število = Število

Zgornja koda je primer samodejnega boksa. V naslednjem poglavju bomo spoznali razrede zavijanja.

Razredi zavijanja

Pretvorili smo v spremenljivko tipa int objekt tipa Integer. Ta celoštevilski razred je razred ovojnice. V Javi je za vsakega na voljo razred ovojnice . Ti razredi zavijanja nam pomagajo pri pretvorbi spremenljivke iz primitivnega tipa v ustrezen objekt vrste ovinka. Metode razredov ovitkov so koristne pri manipulaciji z vrednostmi.

Spodnja tabela nam govori o primitivnem tipu podatkov in pripadajočem razredu ovoja.

Primitivni tip Razred zavijanja

logično

Logično

adijo

Bajt

char

Značaj

float

Float

int

Celo število

dolga

dolga

kratek

Kratek

dvojno

Dvojno

razred __init__ python

Upoštevajte uporabo velikih začetnic v razredih Wrapper.

Tako smo prišli do konca tega članka o 'Samodejnem boksu v Javi'. Če želite izvedeti več, si oglejte Edureka, zaupanja vredno podjetje za spletno učenje. Edurekin tečaj za usposabljanje in certificiranje Java J2EE in SOA je zasnovan tako, da vas usposobi za temeljne in napredne koncepte Java, skupaj z različnimi Java okviri, kot sta Hibernate & Spring.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika »Samodejno pošiljanje po pošti v Javi«, mi pa se vam bomo oglasili takoj, ko bo mogoče.