Was ist AutoBoxing und Unboxing in Java?



Dieser Artikel bietet Ihnen einen umfassenden Ansatz für Autoboxing in Java sowie einige Beispiele zum besseren Verständnis.

Meistens verwenden wir primitive Datentypen, während wir ein Programm in einer beliebigen Sprache schreiben. Es gibt jedoch Situationen, in denen primitive Datentypen im Bereich von zu kurz kommen und Ist einer von ihnen. Um die Nachteile primitiver Datentypen zu überwinden, verwenden wir Wrapper . Dieser Vorgang wird als Autoboxing bezeichnet. Wir werden detailliertes Autoboxing in Java anhand des folgenden Dokuments diskutieren:

Lass uns anfangen.





Was ist Boxen und Autoboxing in Java?

Boxen und Autoboxing werden oft verwendet, um sich auf dasselbe Konzept zu beziehen. In Wirklichkeit sind sie jedoch nicht genau gleich. Lassen Sie uns zunächst über das Konzept des Boxens sprechen. Was ist Boxen? Klingt so, als würden wir etwas in einer Kiste aufbewahren, oder? Ja, wenn wir sagen, dass wir einen primitiven Datentyp boxen oder umschließen, bedeutet dies, dass wir ihn umbrechen, um ein Objekt zu bilden. Immer noch verwirrt? Nehmen wir ein Beispiel.

int FirstNumber = 1

Die Variable 'FirstNumber' ist vom Typ int . Was ist nun, wenn ich die Variable 'FirstNumber' in ein Objekt konvertieren möchte? Java bietet eine Möglichkeit, dies zu tun.



Ganzzahl SecondNumber = neue Ganzzahl (2)

Beachten Sie, dass 'SecondNumber' nicht vom Typ int ist, sondern ein Objekt vom Typ Integer. Dieser Prozess der Konvertierung primitiver Datentypen in ein Objekt wird als Boxen bezeichnet. Sie könnten fragen, wie das möglich ist? Überlegen wir uns, wie diese Aufgabe am einfachsten zu erfüllen ist. Wir können eine erstellen Klasse Enthält ein einzelnes Attribut vom Typ int, einen Konstruktor, der einen int-Typwert nimmt und ihn unserem Klassenattribut zuweist, und einige Methoden zum Bearbeiten dieses int-Werts. Um mehr darüber zu erfahren, lesen Sie dies Dokument .

Unterschied zwischen implementiert und erweitert Java

Wir haben gesehen, wie der Typ int in Java konvertiert werden kann. Gibt es eine Möglichkeit, andere primitive Datentypen in Objekte zu konvertieren? Ja, Java hat jeweils Wrapper-Klasse für verschiedene primitive Datentypen. Wir werden sie im nächsten Abschnitt dieses Beitrags untersuchen.

Autoboxing

An diesem Punkt wissen wir, was Boxen ist. Lassen Sie uns nun verstehen, was Autoboxing ist. Wenn der Prozess des Boxens vom Compiler ohne explizite Erwähnung durchgeführt wird, spricht man von Autoboxing.



Lassen Sie uns dies anhand eines Beispiels verstehen:

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

Wie wir zuvor besprochen haben akzeptiert nur Objekte und der primitive Datentyp funktioniert nicht. Im obigen Programm haben wir keine Objekte vom Typ in Integer konvertiert, dennoch wird das Programm fehlerfrei ausgeführt. Wie? Die Antwort auf diese Frage lautet: Der Compiler hat den Boxvorgang automatisch durchgeführt, bevor er den Wert zu 'Mylist' hinzufügte, daher der Name 'Autoboxing'.

Mylist.add (Integer.valueOf (i))

Die obige Codezeile wird vom Compiler in unser Programm eingefügt.

Hinweis- In der obigen Zeile des Code wird der Klassenname 'Integer' vor der Methode valueOf () erwähnt, da valueOf () eine statische Methode ist. Weitere Beispiele finden Sie in der docs .

Unboxing und Autounboxing

Wir haben gesehen wie vom primitiven Datentyp werden in Objekte konvertiert. Dies ist jedoch nur die halbe Wahrheit. Die andere Hälfte der Geschichte konvertiert ein Objekt einer Typ-Wrapper-Klasse in seinen primitiven Datentyp, der aufgerufen wird Unboxing .

Beispielsweise-

Ganzzahl FirstNumber = new Ganzzahl (1) int SecondNumber = FirstNumber.intValue () System.out.println (SecondNumber)

Ausgabe- 1

Autounboxing- Wenn der vom Compiler ohne explizite Erwähnung durchgeführte Unboxing-Vorgang als Autounboxing bezeichnet wird.

Beispielsweise-

Integer Number = new Integer (20) int num = Number

Der obige Code ist ein Beispiel für Autounboxing. Im nächsten Abschnitt erfahren Sie mehr über Wrapper-Klassen.

Wrapper-Klassen

Wir haben in Typvariable intl Integer Typ Objekt konvertiert. Diese Ganzzahlklasse ist eine Wrapper-Klasse. In Java ist für jede Klasse eine Wrapper-Klasse verfügbar . Diese Wrapper-Klassen helfen uns beim Konvertieren einer Variablen vom primitiven Typ in das jeweilige Wrapper-Klassentypobjekt. Die Methoden von Wrapper-Klassen sind nützlich, um die Werte zu bearbeiten.

Die folgende Tabelle enthält Informationen zum primitiven Datentyp und seiner jeweiligen Wrapper-Klasse.

Primitiver Typ Wrapper-Klasse

Boolescher Wert

Boolescher Wert

Tschüss

Byte

verkohlen

Charakter

wie man die Zahl in Java umkehrt

schweben

Schweben

int

Ganze Zahl

lange

Lange

kurz

Kurz

doppelt

Doppelt

Beachten Sie die Großschreibung in den Wrapper-Klassen.

Damit sind wir am Ende dieses Artikels zum Thema 'Autoboxing in Java' angelangt. Wenn Sie mehr erfahren möchten, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen. Der Java J2EE- und SOA-Schulungs- und Zertifizierungskurs von Edureka wurde entwickelt, um Sie für Kern- und fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring zu schulen.

Hast du eine Frage an uns? Bitte erwähnen Sie es im Kommentarbereich dieses Blogs 'Autoboxing in Java' und wir werden uns so schnell wie möglich bei Ihnen melden.