Heim  >  Artikel  >  Java  >  Wie funktioniert Auto Boxing/Unboxing in Java?

Wie funktioniert Auto Boxing/Unboxing in Java?

Barbara Streisand
Barbara StreisandOriginal
2024-11-14 12:37:02395Durchsuche

How Does Auto Boxing/Unboxing Work in Java?

Auto Boxing/Unboxing in Java

Automatisches Boxen und Unboxing in Java vereinfacht Typkonvertierungen zwischen primitiven Datentypen und ihren entsprechenden Wrapper-Klassen. Diese in JDK 5.0 eingeführte Funktion bietet eine nahtlose Integration dieser beiden Darstellungen.

Auto-Boxing

Beim Zuweisen eines primitiven Werts zu einer Wrapper-Klassenvariablen erfolgt Auto-Boxing . Entgegen der Annahme, dass der Wrapper-Klassenkonstruktor verwendet wird, wird stattdessen die statische Methode valueOf() aufgerufen. Dies wird im Bytecode deutlich, der für den folgenden Code generiert wurde:

Integer n = 42;
0: bipush        42
2: invokestatic  #16                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: astore_1      

Die Methode valueOf() speichert die erstellten Objekte zwischen und sorgt so für Ressourceneffizienz.

Auto Unboxing

Umgekehrt erfolgt beim Extrahieren eines primitiven Werts aus einer Wrapper-Klassenvariablen ein automatisches Unboxing. Dieser Prozess nutzt die intValue()-Methode für Ganzzahlen (und analoge Methoden für andere Typen), wie im Bytecode für Folgendes dargestellt:

int n = Integer.valueOf(42);
0: bipush        42
2: invokestatic  #16                 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: invokevirtual #22                 // Method java/lang/Integer.intValue:()I
8: istore_1      

Diese Methode gibt einfach den im Wrapper-Objekt gespeicherten Grundwert zurück .

Zusammenfassend lässt sich sagen, dass beim automatischen Boxen/Unboxen die statischen Methoden valueOf() und intValue() (oder ähnliches) verwendet werden, um transparent zwischen primitiv und zu konvertieren Wrapper-Klassendarstellungen. Dies vereinfacht den Code und verbessert die Leistung durch die Verwendung von Caching-Mechanismen.

Das obige ist der detaillierte Inhalt vonWie funktioniert Auto Boxing/Unboxing in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn