Mi az AutoBoxing és unboxing a Java-ban?



Ez a cikk átfogó megközelítést nyújt Önnek a Java autoboxolással kapcsolatban, néhány példával együtt a jobb megértés érdekében.

Legtöbbször primitív adattípusokat használunk, miközben bármilyen nyelven írunk egy programot. De vannak olyan helyzetek, amikor a primitív adattípusok elmaradnak a és az egyik. A primitív adattípusok hátrányainak kiküszöbölésére használjuk burkolók . Ezt az eljárást Autoboxnak hívják. Megbeszéljük a Java automatikus autoboxolását az alábbi dockon keresztül:

Kezdjük.





Mi a Box és az Autoboxing a Java-ban?

A bokszot és az autoboxot gyakran használják ugyanarra a fogalomra. De a valóságban nem teljesen egyformák. Beszéljünk először a boksz fogalmáról. Mi az ökölvívás? Úgy hangzik, mintha valamit tartanánk egy dobozban, igaz? Igen, amikor azt mondjuk, hogy egy primitív adattípust bokszolunk vagy csomagolunk, az azt jelenti, hogy egy objektum kialakításához csomagoljuk. Még mindig zavart? Vegyünk egy példát.

int Első szám = 1

Az „FirstNumber” változó int típusú, amely a . És mi van akkor, ha a „FirstNumber” változót objektummá akarom alakítani? A Java erre lehetőséget nyújt.



Egész szám SecondNumber = új egész szám (2)

Figyelje meg, hogy a ’SecondNumber’ nem int típusú, hanem Integer típusú objektum. A primitív adattípusok objektummá alakításának ezt a folyamatát boxnak nevezzük. Megkérdezheti, hogy lehetséges ez? Gondoljuk át, mi a legegyszerűbb módja ennek a feladatnak a megvalósításában. Hozhatunk létre a osztály tartalmaz egyetlen int típusú attribútumot, egy konstruktort, amely egy int típusú értéket vesz fel, és hozzárendeli azt az osztály attribútumunkhoz, valamint néhány módszert ennek az int értéknek a kezelésére. Ha többet szeretne megtudni róla, olvassa el ezt dokumentum .

hogyan állítsunk le egy programot a java-ban

Láttuk, hogyan lehet az int típust Java-ra konvertálni. Van-e mód más primitív adattípusok objektummá alakítására? Igen, a Java rendelkezik megfelelővel burkoló osztály különböző primitív adattípusokhoz. A bejegyzés következő szakaszában megvizsgáljuk őket.

Autoboxolás

Ezen a ponton tudjuk, mi az a boksz. Most értsük meg, mi az Autoboxing. amikor az ökölvívás folyamatát a fordító kifejezetten megemlíti, autoboxolásnak nevezzük.



Értsük meg ezt egy példával:

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

Ahogy korábban megbeszéltük csak objektumokat fogad el, és a primitív adattípus nem működik. A fenti programban nem konvertáltunk típusban egész szám típusú objektumokká, a program mégis hiba nélkül végrehajtja. Hogyan? A válasz erre a kérdésre az, hogy a fordító automatikusan elvégezte a boxolási folyamatot, mielőtt hozzáadta volna az értéket a „Mylist” -hez, ezért az Autoboxing név.

Mylist.add (Integer.valueOf (i))

A fenti kódsort a fordító programunkkal egészíti ki.

Jegyzet- A kódsor fenti sorában az érték neveOInteger szerepel a valueOf () metódus előtt, mivel az valueOf () statikus módszer. További példák a docs .

Kicsomagolás és Autounboxing

Láttuk, hogyan a primitív adattípusból objektumokká alakulnak át. De ez csak a történet fele. A történet másik fele átalakítja egy típusú objektumot egy primer adattípussá kicsomagolás .

Például-

Egész szám FirstNumber = új egész szám (1) int SecondNumber = Első szám.intValue () System.out.println (SecondNumber)

Kimenet - 1

Autounboxing- Amikor a fordító külön-külön megemlítés nélkül végzett kicsomagolásának folyamatát Autounboxing-nak nevezzük.

Például-

Egész szám = új Egész szám (20) int szám = Szám

A fenti kód az Autounboxing példája. A következő részben megismerjük a burkoló osztályokat.

Burkoló osztályok

Konvertáltuk az intl Integer típusú objektum változóba. Ez az egész osztály burkoló osztály. A Java-ban mindegyik számára elérhető egy burkoló osztály . Ezek a burkoló osztályok segítenek abban, hogy egy változót primitív típusból megfelelő burkoló osztály típusú objektummá alakítsunk. A burkoló osztályok módszerei hasznosak az értékek manipulálásában.

Az alábbi táblázat ismerteti a primitív adattípust és a megfelelő burkolóosztályt.

Primitív típus Burkoló osztály

logikai érték

Logikai

Viszlát

Byte

char

karakter

java c ++ python

úszó

Úszó

int

Egész szám

hosszú

Hosszú

rövid

Rövid

kettős

Kettős

Figyelje meg a nagybetűket a Wrapper osztályokban.

Így az „Autoboxolás a Java-ban” című cikkünk végéhez értünk. Ha többet szeretne megtudni, nézze meg a Edureka, egy megbízható online tanulási társaság. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát arra tervezték, hogy mind az alapvető, mind a fejlett Java koncepciókra kiképezzen különféle Java keretrendszereket, például a Hibernate & Spring.

Van egy kérdésünk? Kérjük, említse meg ennek a blognak az „autóboxolás a Java-ban” megjegyzés szakaszában, és a lehető leghamarabb kapcsolatba lépünk Önnel.