Što je AutoBoxing i unboxing u Javi?



Ovaj će vam članak pružiti sveobuhvatan pristup automatskom boksu u Javi, zajedno s nekoliko primjera za bolje razumijevanje.

Većinu puta koristimo primitivne tipove podataka dok pišemo program na bilo kojem jeziku. Ali postoje situacije u kojima primitivni tipovi podataka nedostaju u području i je jedan od njih. Koristimo se da bismo prevladali nedostatke primitivnih tipova podataka omotači . Taj se postupak naziva Autoboxing. O detaljnom Autoboxingu u Javi razgovarat ćemo kroz donji dokument:

Započnimo.





Što je boks i automatsko boksanje na Javi?

Boks i autoboks često se koriste za označavanje istog pojma. Ali u stvarnosti nisu potpuno isti. Prvo razgovarajmo o konceptu boksa. Što je boks? Zvuči kao da nešto držimo u kutiji, zar ne? Da, kada kažemo da boksamo ili umotavamo primitivni tip podataka, to znači da ga umotavamo u oblik objekta. Još uvijek zbunjeni? Uzmimo primjer.

int FirstNumber = 1

Varijabla 'FirstNumber' je tipa int koja je a . Sada, što ako želim pretvoriti varijablu 'FirstNumber' u objekt? Java pruža način za to.



Integer SecondNumber = novi Integer (2)

Primijetite da 'SecondNumber' nije tipa int, već je objekt tipa Integer. Ovaj postupak pretvaranja primitivnih vrsta podataka u objekt naziva se boks. Možete se pitati kako je to moguće? Razmislimo o tome koji je najjednostavniji način ostvarenja ovog zadatka. Možemo stvoriti razred sadrži jedan atribut tipa int, konstruktor koji uzima vrijednost tipa int i dodjeljuje ga našem atributu klase, te neke metode za manipulaciju ovom vrijednošću int. Da biste saznali više o tome, pogledajte ovo dokument .

Vidjeli smo kako se vrsta int može pretvoriti u Javu. Postoji li način pretvaranja drugih primitivnih vrsta podataka u objekte? Da, Java ima odgovarajuće klasa omota za različite primitivne tipove podataka. Istražit ćemo ih u sljedećem odjeljku ovog posta.

pretvori datumski niz u datum

Autoboks

U ovom trenutku znamo što je boks. Sada da shvatimo što je Autoboxing. kada postupak boksa obavlja kompajler bez izričitog spominjanja, naziva se automatskim boksom.



Shvatimo to na primjeru:

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

Kao što smo ranije razgovarali prihvaća samo objekte i primitivni tip podataka ne radi. U gornjem programu nismo pretvorili tip u objekte tipa Integer, a program se i dalje izvršava bez greške. Kako? Odgovor na ovo pitanje je da je sastavljač automatski odradio boksački postupak prije dodavanja vrijednosti na 'Mylist' pa otuda i naziv Autoboxing.

Mylist.add (Integer.valueOf (i))

Gornji redak koda u naš program dodaje kompajler.

Bilješka- U gornjem retku kôda klasa ime’Integer ’spominje se prije metode valueOf () jer je valueOf () statična metoda. Za više primjera pogledajte dokumenti .

Raspakiranje i automatsko kutiranje

Vidjeli smo kako primitivnog tipa podataka pretvaraju se u objekte. Ali ovo je samo polovica priče. Druga polovica priče je pretvaranje objekta klase omota tipa u njegov primitivni tip podataka koji se zove Raspakirati .

Na primjer-

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

Izlaz- 1

Automatsko boksanje- Kada se postupak raspakiranja koji je izvršio kompajler bez izričitog spominjanja naziva Autounboxing.

Na primjer-

Cijeli broj = novi cijeli broj (20) int broj = broj

Gornji je kod primjer automatskog boksanja. U sljedećem odjeljku naučit ćemo o tečajevima omota.

Klase omota

Pretvorili smo u tip varijable intl Integer tip objekta. Ova cijela klasa je klasa omotača. U Javi je klasa omota dostupna za svaku . Te klase omotača pomažu nam u pretvaranju varijable iz primitivnog tipa u odgovarajući objekt tipa klase omotača. Metode klasa omota korisne su u manipulaciji vrijednostima.

Tablica u nastavku govori nam o primitivnom tipu podataka i pripadajućoj klasi omotača.

čitati i pisati excel datoteku u javi
Primitivni tip Klasa omota

boolean

Booleova

Pozdrav

Bajt

ugljen

Lik

def __init__ python

plutati

Plutati

int

Cijeli broj

dugo

Dugo

kratak

Kratak

dvostruko

Dvostruko

Primijetite upotrebu velikih slova u razredima Wrapper.

Tako smo došli do kraja ovog članka o ‘Autoboxingu u Javi’. Ako želite saznati više, pogledajte Edureka, pouzdane tvrtke za internetsko učenje. Edurekin tečaj za obuku i certificiranje Java J2EE i SOA osmišljen je kako bi vas osposobio za osnovne i napredne Java koncepte, zajedno s raznim Java okvirima poput Hibernate & Spring.

Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'autoboxing na Javi', a mi ćemo vam se javiti u najkraćem mogućem roku.