Ano ang AutoBoxing at unboxing sa Java?



Bibigyan ka ng artikulong ito ng isang komprehensibong diskarte patungo sa Autoboxing sa Java kasama ang ilang mga halimbawa para sa mas mahusay na pag-unawa.

Karamihan sa mga oras na gumagamit kami ng mga primitive na uri ng data habang nagsusulat ng isang programa sa anumang wika. Ngunit may mga sitwasyon kung saan ang mga primitive na uri ng data ay nahuhulog sa larangan ng at ay isa sa kanila. Upang mapagtagumpayan ang mga drawbacks sa Primitive datatypes, ginagamit namin mga pambalot . Ang pamamaraang ito ay tinatawag na Autoboxing. Tatalakayin namin ang detalyadong Autoboxing sa Java sa pamamagitan ng docket sa ibaba:

Magsimula na tayo.





Ano ang Boxing at Autoboxing sa Java?

Ang boksing at Autoboxing ay madalas na ginagamit upang mag-refer sa parehong konsepto. Ngunit sa totoo lang, hindi sila eksaktong pareho. Pag-usapan muna natin ang tungkol sa konsepto ng boksing. Ano ang boxing? Mukhang pinapanatili natin ang isang bagay sa loob ng isang kahon di ba? Oo, kapag sinabi naming nagboboksing o nagbabalot kami ng isang primitive na uri ng data nangangahulugan ito na binabalot namin ito upang makabuo ng isang bagay. Nalilito pa rin? Kumuha tayo ng isang halimbawa.

int FirstNumber = 1

Ang variable na 'FirstNumber' ay uri ng int na kung saan ay a . Ngayon, paano kung nais kong gawing isang object ang variable na 'FirstNumber'? Nagbibigay ang Java ng isang paraan ng paggawa nito.



Integer SecondNumber = bagong Integer (2)

Pansinin na ang 'SecondNumber' ay hindi uri ng int ngunit ito ay isang bagay na uri ng Integer. Ang prosesong ito ng pag-convert ng mga primitive na uri ng data sa isang bagay ay tinatawag na boxing. Maaari mong tanungin kung paano ito posible? Pag-isipan natin kung ano ang pinakasimpleng paraan ng pagtupad sa gawaing ito. Maaari tayong lumikha ng isang klase naglalaman ng isang solong katangian ng uri ng int, isang tagapagbuo na tumatagal ng isang halaga ng uri ng int at ibinibigay ito sa katangian ng aming klase, at ilang mga pamamaraan upang manipulahin ang int halaga na ito. Upang malaman ang higit pa tungkol dito tingnan ito dokumento .

Nakita namin kung paano mai-convert ang int type sa Java. Mayroon bang isang paraan ng pag-convert ng iba pang mga primitive na uri ng data sa mga object? Oo, ang Java ay may kanya-kanyang pambalot na klase para sa iba't ibang mga primitive na uri ng data. Susuriin namin ang mga ito sa susunod na seksyon ng post na ito.

Pag-autoboxing

Sa puntong ito, alam natin kung ano ang boxing. Ngayon ay unawain natin kung ano ang Autoboxing. kapag ang proseso ng boksing ay ginagawa ng tagatala nang walang malinaw na nabanggit, ay tinatawag na autoboxing.



Unawain natin ito sa isang halimbawa:

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

Tulad ng tinalakay natin kanina tumatanggap lamang ng mga object at uri ng data ng primitive na hindi gumagana. Sa program sa itaas, hindi kami nag-convert ng uri sa mga object na uri ng Integer na isinasagawa pa rin ng programa nang walang anumang error. Paano? Ang sagot sa katanungang ito ay, awtomatikong ginawa ng tagatala ang proseso ng boksing bago idagdag ang halaga sa 'Mylist' samakatuwid ang pangalang Autoboxing.

Mylist.add (Integer.valueOf (i))

Ang linya ng code sa itaas ay idinagdag sa aming programa ng tagatala.

Tandaan- Sa linya sa itaas ng pangalan ng klase ng code na ‘Integer ’ay nabanggit bago ang pamamaraan na halagaOf () dahil ang valueOf () ay isang static na pamamaraan. Para sa karagdagang mga halimbawa sumangguni sa docs .

Unboxing at Autounboxing

Nakita namin kung paano ng primitive na uri ng data ay ginawang mga object. Ngunit kalahati lamang ito ng kwento. Ang iba pang kalahati ng kwento ay nagko-convert ng isang bagay ng isang uri ng klase ng pambalot sa kanyang primitive na uri ng data ay tinawag unboxing .

Halimbawa-

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

Output- 1

Autounboxing- Kapag ang proseso ng unboxing na ginawa ng tagatala nang hindi malinaw na binabanggit ay tinatawag na Autounboxing.

tahasang uri ng paghahagis sa java

Halimbawa-

Numero ng Integer = bagong Integer (20) int num = Numero

Ang code sa itaas ay isang halimbawa ng Autounboxing. Sa susunod na seksyon, malalaman natin ang tungkol sa mga klase sa pambalot.

Mga Klase sa Balot

Nag-convert kami sa uri ng variable na intl na uri ng integer. Ang integer class na ito ay isang pambalot na klase. Sa Java, isang klase ng pambalot ang magagamit para sa bawat isa . Ang mga klase ng pambalot ay makakatulong sa amin sa pag-convert ng isang variable mula sa primitive na uri sa kani-kanilang bagay na uri ng pambalot na klase. Ang mga pamamaraan ng mga klase ng pambalot ay kapaki-pakinabang sa pagmamanipula ng mga halaga.

Sinasabi sa amin ng talahanayan sa ibaba ang tungkol sa uri ng primitive na data at kani-kanilang klase ng pambalot.

Karaniwang Uri Wrapper Class

boolean

Boolean

bye

Byte

char

Tauhan

lumutang

Lumutang

int

Integer

mahaba

Mahaba

maikli

Maikli

doble

Doble

Pansinin ang malaking titik sa mga klase sa Wrapper.

Sa gayon ay natapos na kami sa artikulong ito sa 'Autoboxing in Java'. Kung nais mong matuto nang higit pa, tingnan ang ni Edureka, isang pinagkakatiwalaang kumpanya sa pag-aaral sa online. Ang kurso sa pagsasanay at sertipikasyon ng Java J2EE at SOA ng Edureka ay idinisenyo upang sanayin ka para sa parehong core at advanced na mga konsepto ng Java kasama ang iba't ibang mga balangkas ng Java tulad ng Hibernate & Spring.

May tanong ba sa amin? Mangyaring banggitin ito sa seksyon ng mga komento ng blog na ito na 'autoboxing in Java' at babalikan ka namin sa lalong madaling panahon.