Čo je AutoBoxing a unboxing v Jave?



Tento článok vám poskytne komplexný prístup k Autoboxingu v Jave spolu s príkladmi na lepšie pochopenie.

Väčšinou používame pri písaní programu v akomkoľvek jazyku primitívne dátové typy. Existujú ale situácie, kedy primitívne dátové typy v oblasti nedosahujú úrovne a je jedným z nich. Na prekonanie nevýhod primitívnych dátových typov používame zavinovačky . Tento postup sa nazýva Autoboxing. Budeme diskutovať o podrobnom Autoboxingu v Jave prostredníctvom nižšie uvedeného doku:

Poďme začať.





Čo je to box a autobox v jazyku Java?

Na označenie rovnakého konceptu sa často používajú box a autobox. Ale v skutočnosti nie sú úplne rovnaké. Najprv si povieme niečo o koncepte boxu. Čo je to box? Zdá sa, že niečo držíme vo vnútri krabice, že? Áno, keď hovoríme, že zabalíme alebo zabalíme primitívny dátový typ, znamená to, že ho zabalíme do podoby objektu. Stále zmätení? Uveďme si príklad.

int FirstNumber = 1

Premenná ‘FirstNumber’ je typu int, čo je a . Čo teraz, keď chcem premeniť premennú „Prvé číslo“ na objekt? Java poskytuje spôsob, ako to dosiahnuť.



Celé číslo Druhé číslo = nové celé číslo (2)

Všimnite si, že ‘SecondNumber’ nie je typu int, ale je to objekt typu Integer. Tento proces premeny primitívnych dátových typov na objekt sa nazýva box. Možno sa pýtate, ako je to možné? Zamyslime sa, aký je najjednoduchší spôsob splnenia tejto úlohy. Môžeme vytvoriť trieda obsahujúci jeden atribút typu int, konštruktor, ktorý prevezme hodnotu typu int a priradí ju k nášmu atribútu triedy, a niektoré metódy na manipuláciu s touto hodnotou int. Ak sa chcete dozvedieť viac, prečítajte si toto dokument .

Videli sme, ako sa dá typ int previesť na Javu. Existuje spôsob, ako prevádzať ďalšie primitívne dátové typy na objekty? Áno, Java má príslušné obalová trieda pre rôzne primitívne dátové typy. Pozrime sa na ne v ďalšej časti tohto príspevku.

Autoboxing

V tejto chvíli vieme, čo je to box. Teraz si uvedomme, čo je Autoboxing. keď proces boxovania vykonáva kompilátor bez výslovného uvedenia, nazýva sa to autoboxing.



Poďme to pochopiť na príklade:

ako používať triedu skenera

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

Ako sme už diskutovali prijíma iba objekty a primitívny dátový typ nefunguje. Vo vyššie uvedenom programe sme nekonvertovali typ na objekty typu Integer, ktoré program stále vykonáva bez chyby. Ako? Odpoveď na túto otázku je, že kompilátor automaticky vykonal proces boxovania pred pridaním hodnoty do „Mylistu“, odtiaľ názov Autoboxing.

Mylist.add (Integer.valueOf (i))

Vyššie uvedený riadok kódu pridáva do nášho programu kompilátor.

Poznámka- Vo vyššie uvedenom riadku kódu je názov triedy „Integer “uvedený pred metódou valueOf (), pretože valueOf () je statická metóda. Ďalšie príklady nájdete v dokumente doc .

Unboxing a Autounboxing

Videli sme ako primitívneho dátového typu sa prevedú na objekty. Ale toto je iba polovica príbehu. Druhá polovica príbehu prevádza objekt triedy wrapper typu na jeho primitívny dátový typ rozbaľovanie .

Napríklad-

Celé číslo FirstNumber = nové Celé číslo (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Výstup - 1

Automatický box - Keď sa proces rozbalenia, ktorý kompilátor vykoná bez výslovného uvedenia, nazýva Autounboxing.

Napríklad-

Celé číslo = nové celé číslo (20) int num = počet

Vyššie uvedený kód je príkladom automatického odhaľovania. V nasledujúcej časti sa dozvieme niečo o triedach wrapperov.

Triedičky obalov

Premenili sme na typ premenná intl Integer typ objektu. Táto celočíselná trieda je triedou wrapper. V prostredí Java je pre každú k dispozícii trieda obálky . Tieto triedy wrapperov nám pomáhajú pri prevode premennej z primitívneho typu na príslušný objekt typu triedy wrapper. Metódy súhrnných tried sú užitočné pri manipulácii s hodnotami.

Nasledujúca tabuľka nám hovorí o primitívnom dátovom type a jeho príslušnej obaľovacej triede.

Primitívny typ Triedička zavinovačiek

boolovský

Boolovský

zbohom

Byte

char

Postava

plavák

Plavák

int

java rozdiel medzi hashmapou a hashtable

Celé číslo

dlho

Dlhé

krátky

Krátky

dvojitý

Dvojitý

Všimnite si veľké písmená v triedach Wrapper.

Tak sme sa dostali na koniec tohto článku o „Autoboxingu v Jave“. Ak sa chcete dozvedieť viac, pozrite si Edureka, dôveryhodná online vzdelávacia spoločnosť. Výcvikový a certifikačný kurz Edureka Java J2EE a SOA je navrhnutý tak, aby vás vyškolil na základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to v sekcii komentárov tohto blogu „autoboxing in Java“ a my sa vám ozveme čo najskôr.