Co je AutoBoxing a unboxing v Javě?



Tento článek vám poskytne komplexní přístup k Autoboxingu v Javě a několik příkladů pro lepší pochopení.

Většinu času používáme primitivní datové typy při psaní programu v jakémkoli jazyce. Existují však situace, kdy primitivní datové typy v oblasti nedosahují a je jedním z nich. K překonání nevýhod v primitivních datových typech používáme obaly . Tento postup se nazývá Autoboxing. Budeme diskutovat o podrobném Autoboxingu v Javě prostřednictvím níže uvedené příručky:

Pojďme začít.





Co je to box a autoboxing v Javě?

K označení stejného konceptu se často používá box a autobox. Ve skutečnosti však nejsou úplně stejné. Nejprve si promluvme o konceptu boxu. Co je to box? Zdá se, že něco držíme uvnitř krabice, že? Ano, když říkáme, že zabalíme nebo zabalíme primitivní datový typ, znamená to, že jej zabalíme do podoby objektu. Stále zmatený? Uveďme si příklad.

int FirstNumber = 1

Proměnná „FirstNumber“ je typu int, což je a . Co když chci převést proměnnou „FirstNumber“ na objekt? Java poskytuje způsob, jak toho dosáhnout.



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

Všimněte si, že „SecondNumber“ není typu int, ale je to objekt typu Integer. Tento proces převodu primitivních datových typů na objekt se nazývá box. Možná se ptáte, jak je to možné? Pojďme se zamyslet nad tím, jaký je nejjednodušší způsob provedení tohoto úkolu. Můžeme vytvořit třída obsahující jediný atribut typu int, konstruktor, který přebírá hodnotu typu int a přiřadí ji k našemu atributu třídy, a některé metody pro manipulaci s touto hodnotou int. Chcete-li se dozvědět více, přečtěte si toto dokument .

Viděli jsme, jak lze typ int převést na Javu. Existuje způsob, jak převést jiné primitivní datové typy na objekty? Ano, Java má příslušné třída obálky pro různé primitivní datové typy. Podíváme se na ně v další části tohoto příspěvku.

Autoboxing

V tuto chvíli víme, co je box. Nyní pochopme, co je Autoboxing. když proces boxování provádí kompilátor bez výslovně uvedeného, ​​nazývá se autoboxing.



Pochopme to na příkladu:

jak vytvořit soubor v javě

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

Jak jsme diskutovali dříve přijímá pouze objekty a primitivní datový typ nefunguje. Ve výše uvedeném programu jsme nepřevedli typ na objekty typu Integer, které program stále provádí bez jakékoli chyby. Jak? Odpověď na tuto otázku je, že kompilátor automaticky provedl proces boxování před přidáním hodnoty do „Mylist“, odtud název Autoboxing.

Mylist.add (Integer.valueOf (i))

Výše uvedený řádek kódu přidává do našeho programu kompilátor.

Poznámka- Ve výše uvedeném řádku kódu je před metodou valueOf () zmíněn název třídy „Integer“, protože valueOf () je statická metoda. Další příklady viz dokumenty .

Unboxing a Autounboxing

Viděli jsme jak primitivního datového typu jsou převedeny na objekty. Ale to je jen polovina příběhu. Druhá polovina příběhu převádí objekt třídy typu wrapper na jeho primitivní datový typ rozbalení .

Například-

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

Výstup - 1

Automatický box Když se proces rozbalení provedený kompilátorem bez výslovného zmínky nazývá Autounboxing.

Například-

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

Výše uvedený kód je příkladem Autounboxingu. V další části se dozvíme o obálkových třídách.

Třídy obalů

Převedli jsme do proměnné typu intl Integer typ objektu. Tato celočíselná třída je obalová třída. V Javě je pro každý k dispozici obalová třída . Tyto třídy obálky nám pomáhají při převodu proměnné z primitivního typu na příslušný objekt typu obálky. Metody souhrnných tříd jsou užitečné při manipulaci s hodnotami.

Níže uvedená tabulka nám říká o primitivním datovém typu a příslušné třídě obálky.

Primitivní typ Obalová třída

booleovský

Booleovský

sbohem

Byte

char

Charakter

plovák

Plovák

int

co je indexof v JavaScriptu

Celé číslo

dlouho

Dlouho

krátký

Krátký

dvojnásobek

Dvojnásobek

Všimněte si velkých písmen ve třídách Wrapper.

Tak jsme dospěli ke konci tohoto článku o „Autoboxingu v Javě“. Pokud se chcete dozvědět více, podívejte se na Edureka, důvěryhodná online vzdělávací společnost. Školicí a certifikační kurz Edureka Java J2EE a SOA je navržen tak, aby vás vyškolil jak pro základní, tak pro pokročilé koncepty Java spolu s různými rámci Java jako Hibernate & Spring.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů tohoto blogu „autoboxing v Javě“ a my se vám ozveme co nejdříve.