Kas yra „AutoBoxing“ ir „unboxing“ naudojimas „Java“?



Šis straipsnis suteiks jums išsamų požiūrį į „Java“ automatinį naršymą kartu su keliais pavyzdžiais, kad geriau suprastumėte.

Dažniausiai rašydami programą bet kuria kalba mes naudojame primityvius duomenų tipus. Tačiau yra situacijų, kai primityvūs duomenų tipai nesiekia ir yra vienas iš jų. Norėdami įveikti Primityvių duomenų tipų trūkumus, mes naudojame vyniotuvai . Ši procedūra vadinama „Autoboxing“. Aptarsime išsamų „Java“ automatinį naršymą per žemiau pateiktą lizdą:

Pradėkime.



Kas yra „Java“ boksas ir automatinis naršymas?

Boksas ir „Autoboxing“ dažnai vartojami vadinant tą pačią sąvoką. Tačiau iš tikrųjų jie nėra visiškai vienodi. Pirmiausia pakalbėkime apie bokso sąvoką. Kas yra boksas? Panašu, kad mes kažką laikome dėžutėje, tiesa? Taip, kai sakome, kad mes boksuojame arba įvyniojame primityvų duomenų tipą, tai reiškia, kad mes juos suvyniojame, kad suformuotume objektą. Vis dar sumišęs? Paimkime pavyzdį.

int Pirmasis skaičius = 1

„FirstNumber“ kintamasis yra int tipo, kuris yra a . Ką daryti, jei noriu konvertuoti kintamąjį „FirstNumber“ į objektą? „Java“ suteikia būdą tai padaryti.



Sveikasis skaičius Antrasis skaičius = naujas sveikasis skaičius (2)

Atkreipkite dėmesį, kad „SecondNumber“ nėra int tipo, bet jis yra Integer tipo objektas. Šis primityvių duomenų tipų pavertimo į objektą procesas vadinamas boksu. Galite paklausti, kaip tai įmanoma? Pagalvokime, koks yra paprasčiausias būdas atlikti šią užduotį. Mes galime sukurti klasė kuriame yra vienas int tipo atributas, konstruktorius, kuris ima int tipo vertę ir priskiria ją mūsų klasės atributui, ir kai kurie metodai, kaip manipuliuoti šia int reikšme. Norėdami sužinoti daugiau apie tai, kreipkitės į tai dokumentas .

Mes pamatėme, kaip int tipą galima konvertuoti į Java. Ar yra galimybė kitus primityvius duomenų tipus paversti objektais? Taip, „Java“ turi atitinkamą vyniojimo klasė skirtingiems primityviems duomenų tipams. Mes juos nagrinėsime kitame šio įrašo skyriuje.

Autobokso sistema

Šiuo metu mes žinome, kas yra boksas. Dabar supraskime, kas yra „Autoboxing“. kai bokso procesą atlieka kompiliatorius be aiškaus paminėjimo, vadinamas „autoboxing“.



Supraskime tai su pavyzdžiu:

„Microsoft SQL“ serverio pamokos pradedantiesiems

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

Kaip aptarėme anksčiau priima tik objektus, o primityvūs duomenų tipai neveikia. Pirmiau pateiktoje programoje mes nekonvertavome tipo Integer tipo objektų, kuriuos programa vis tiek vykdo be klaidų. Kaip? Atsakymas į šį klausimą yra tas, kad kompiliatorius automatiškai atliko bokso procesą prieš pridėdamas reikšmę „Mylist“, taigi ir pavadinimą „Autoboxing“.

„Mylist.add“ („Integer.valueOf“ (i))

Pirmiau nurodytą kodo eilutę į mūsų programą įtraukė kompiliatorius.

Pastaba- Pirmiau nurodytoje kodo eilutėje eilutės pavadinimas „Integer“ minimas prieš metodą valueOf (), nes valueOf () yra statinis metodas. Daugiau pavyzdžių rasite dokumentai .

Išpakavimas ir automatinis dėžutės naudojimas

Mes matėme kaip pirmykščių duomenų tipo paverčiami objektais. Bet tai tik pusė istorijos. Kita istorijos pusė konvertuoja tipo įvyniojimo klasės objektą į jo primityvų duomenų tipą išpakavimas .

Pavyzdžiui-

Sveikas skaičius Pirmasis skaičius = naujas Sveikasis skaičius (1) int Antrasis skaičius = Pirmasis skaičius.intValue () System.out.println (SecondNumber)

Rezultatas - 1

Automatinis boksas- Kai kompiliatoriaus atliekamas išpakavimo procesas be aiškaus paminėjimo vadinamas Autounboxing.

Pavyzdžiui-

Sveikas skaičius = naujas sveikas skaičius (20) int skaičius = skaičius

Aukščiau pateiktas kodas yra „Autounboxing“ pavyzdys. Kitame skyriuje sužinosime apie įvyniojimo klases.

Vyniotojų klasės

Konvertavome tipo kintamuoju intl sveikojo tipo objektu. Ši sveikųjų klasė yra įvyniojimo klasė. „Java“ kiekvienam yra prieinama pakavimo klasė . Šios pakavimo klasės padeda mums konvertuoti kintamąjį iš primityvaus tipo į atitinkamą paketo klasės tipo objektą. Apibūdinimo klasių metodai yra naudingi manipuliuojant vertėmis.

Žemiau esančioje lentelėje pasakojama apie primityvų duomenų tipą ir atitinkamą paketo klasę.

Pirmykštis tipas Vyniotuvo klasė

loginis

Būlio

Ate

Baitas

char

Charakteris

plūdė

Plūdė

tarpt

pl / sql išimčių tvarkymas

Sveikasis skaičius

ilgas

Ilgas

trumpas

Trumpas

dvigubai

Dvigubai

Atkreipkite dėmesį į „Wrapper“ klasės didžiųjų raidžių rašymą.

Taigi mes baigėme šį straipsnį apie „Autoboxing Java“. Jei norite sužinoti daugiau, patikrinkite sukūrė patikima internetinė mokymosi įmonė „Edureka“. „Edureka“ „Java J2EE“ ir SOA mokymo ir sertifikavimo kursai yra skirti mokyti jus tiek pagrindinėms, tiek pažangesnėms „Java“ koncepcijoms kartu su įvairiomis „Java“ sistemomis, tokiomis kaip „Hibernate & Spring“.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio komentarų skyriuje „Autoboxing in Java“ ir mes kuo greičiau susisieksime su jumis.