Video: Unboxing, Boxing und Autoboxing. Die Wrapper Integer, Float und Co. 2024
Der Unterschied zwischen Grundtypen und Referenztypen ist eine der umstrittensten Eigenschaften von Java, und Entwickler beschweren sich oft über die Unterschiede zwischen Grundwerten und Referenzwerten.
-
Jeder primitive Typ wird in die Sprache gebacken.
Java hat acht primitive Typen.
-
Jeder Referenztyp ist eine Klasse oder eine Schnittstelle.
Sie können einen eigenen Referenztyp definieren. Die Anzahl der Referenztypen in Java ist also potentiell endlos.
Hier ist einer der "Gotchas" des primitiven Typs im Vergleich zum Referenztyp: Sie können keinen primitiven Wert in einer ArrayList speichern. Sie können schreiben
// Das ist OKAY: ArrayList arrayList = new ArrayList ();
weil String ein Referenztyp ist. Aber Sie können nicht schreiben
// Tun Sie das nicht: ArrayList arrayList = new ArrayList ();
weil int ein primitiver Typ ist. Glücklicherweise hat jeder der primitiven Typen von Java einen Typ wrapper , der ein Verweistyp ist, dessen Zweck darin besteht, den Wert eines anderen Typs zu enthalten. Ein Objekt vom Typ Integer von Java enthält beispielsweise einen einzelnen int-Wert. Ein Objekt vom Java-Typ Double enthält einen einzelnen double-Wert. Ein Objekt des Java-Zeichentyps enthält einen einzelnen Zeichenwert. Sie können keine ArrayList von int-Werten erstellen, aber Sie können eine ArrayList von Integer-Werten erstellen.
// DAS IST OKAY: ArrayList arrayList = new ArrayList ();
Der Name jedes primitiven Typs beginnt mit einem Kleinbuchstaben. Jeder Name eines Wrapper-Typs beginnt mit einem Großbuchstaben.
Wrapper-Klassen bieten nicht nur primitive Werte, sondern auch nützliche Methoden für die Arbeit mit primitiven Werten. Zum Beispiel enthält die Integer-Wrapper-Klasse parseInt und andere nützliche Methoden für die Arbeit mit int-Werten:
String string = "17"; int Zahl = Ganzzahl. parseInt (Zeichenkette);
Auf der anderen Seite kann das Arbeiten mit Wrapper-Typen schwerfällig sein. Beispielsweise können Sie keine arithmetischen Operatoren mit den numerischen Wrapper-Typen von Java verwenden. So erstellen Sie zwei Integer-Werte und fügen sie zusammen:
Integer myInteger = new Integer (3); Integer myOtherInteger = neuer Integer (15); Ganze Zahl = myInteger. intValue () + meinOtherInteger. intValue ();