Kas ir AutoBoxing un unboxing Java?



Šis raksts sniegs jums visaptverošu pieeju Java automātiskajai kopēšanai, kā arī dažus labākas izpratnes piemērus.

Lielākoties mēs izmantojam primitīvus datu tipus, rakstot programmu jebkurā valodā. Bet ir situācijas, kad primitīvie datu tipi nepietiek un ir viens no tiem. Lai novērstu primitīvu datu tipu trūkumus, mēs izmantojam ietinēji . Šo procedūru sauc par automātisko kopēšanu. Mēs apspriedīsim detalizētu automātisko pārlūkošanu Java, izmantojot zemāk esošo kontaktligzdu:

Sāksim.





Kas ir bokss un automātiskā bokss Java?

Bokss un Autoboxing bieži tiek izmantoti, lai atsauktos uz to pašu jēdzienu. Bet patiesībā tie nav gluži vienādi. Vispirms parunāsim par boksa jēdzienu. Kas ir bokss? Izklausās, ka mēs kaut ko turam kastē? Jā, kad mēs sakām, ka mēs boksējam vai iesaiņojam primitīvu datu tipu, tas nozīmē, ka mēs to iesaiņojam, lai izveidotu objektu. Joprojām sajaukt? Ņemsim piemēru.

int FirstNumber = 1

Mainīgais ‘FirstNumber’ ir int tipa, kas ir a . Ko darīt, ja es vēlos pārveidot mainīgo ‘FirstNumber’ par objektu? Java nodrošina veidu, kā to izdarīt.



Integer SecondNumber = jauns skaitlis (2)

Ievērojiet, ka ‘SecondNumber’ nav int veida, bet tas ir Integer tipa objekts. Šo primitīvo datu tipu pārveidošanas procesu objektā sauc par boksu. Jūs varētu jautāt, kā tas ir iespējams? Padomāsim, kā vienkāršāk veikt šo uzdevumu. Mēs varam izveidot klasē satur vienu int tipa atribūtu, konstruktoru, kas ņem int tipa vērtību un piešķir to mūsu klases atribūtam, un dažas metodes, kā manipulēt ar šo int vērtību. Lai uzzinātu vairāk par to, skatiet šo dokumentu .

Mēs redzējām, kā int tipu var pārveidot par Java. Vai ir veids, kā pārvērst citus primitīvos datu tipus objektos? Jā, Java ir atbilstošs iesaiņošanas klase dažādiem primitīvu datu tipiem. Mēs tos izskatīsim šīs ziņas nākamajā sadaļā.

Autobokss

Šajā brīdī mēs zinām, kas ir bokss. Tagad sapratīsim, kas ir Autoboxing. kad boksa procesu veic kompilators, nepārprotami neminējot, to sauc par autoboksingu.



Sapratīsim to ar piemēru:

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

Kā mēs to iepriekš apspriedām pieņem tikai objektus, un primitīvais datu tips nedarbojas. Iepriekš minētajā programmā mēs netika pārveidoti par Integer tipa objektiem, tomēr programma tiek izpildīta bez kļūdām. Kā? Atbilde uz šo jautājumu ir tāda, ka sastādītājs automātiski veica boksa procesu, pirms pievienoja vērtību ‘Mylist’, tāpēc tika nosaukts Autoboxing.

Mylist.add (Integer.valueOf (i))

Iepriekš minēto koda rindiņu kompilators ir pievienojis mūsu programmai.

Piezīme- Iepriekš minētajā koda klases rindā nosaukums “Integer ”ir minēts pirms metodes valueOf (), jo valueOf () ir statiska metode. Lai iegūtu vairāk piemēru, skatiet dokumenti .

Unboxing un Autounboxing

Mēs redzējām, kā primitīvo datu veida tiek pārveidoti par objektiem. Bet šī ir tikai puse no stāsta. Otra stāsta puse pārveido objekta veida iesaiņošanas klases objektu par tā primitīvo datu tipu unboxing .

Piemēram-

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

Izeja- 1

Autobokss- Ja kompilatora veikto unboxing procesu, nepārprotami neminot, sauc par Autounboxing.

Piemēram-

Vesels skaitlis = jauns vesels skaitlis (20) int skaitlis = skaitlis

Iepriekš minētais kods ir Autounboxing piemērs. Nākamajā sadaļā mēs uzzināsim par iesaiņojuma klasēm.

Iesaiņotāju klases

Mēs pārveidojām tipa mainīgo intl Integer tipa objektu. Šī veselu skaitļu klase ir iesaiņošanas klase. Java valodā katram ir pieejama iesaiņošanas klase . Šīs iesaiņošanas klases palīdz mums pārveidot mainīgo no primitīva tipa uz attiecīgo iesaiņošanas klases tipa objektu. Iesaiņošanas klases metodes ir noderīgas, manipulējot ar vērtībām.

Zemāk esošajā tabulā ir aprakstīts primitīvais datu tips un tā attiecīgā iesaiņošanas klase.

Primitīvais tips Iesaiņotāju klase

būla

Būla

uz redzēšanos

Baits

char

Raksturs

peldēt

Peldēt

int

Vesels skaitlis

ilgi

Garš

īss

Īss

dubultā

Dubultā

Ievērojiet lielo burtu iesaiņošanas klasēs.

Tādējādi mēs esam nonākuši pie šī raksta par “Autoboxing Java” beigām. Ja vēlaties uzzināt vairāk, iepazīstieties ar Autors: uzticams tiešsaistes mācību uzņēmums Edureka. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts, lai apmācītu jūs gan galvenajiem, gan uzlabotajiem Java jēdzieniem kopā ar dažādiem Java ietvariem, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra komentāru sadaļā “autoboxing in Java”, un mēs sazināsimies ar jums pēc iespējas ātrāk.

kas ir ios izstrādātājs