0Pricing
Java Academy · Lektion

Autoboxing und Unboxing

Regeln für automatische Konvertierung

Autoboxing und Unboxing ist eine kostenlose Java Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Java Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Automatische Konvertierung

Autoboxing bezeichnet die automatische Konvertierung eines primitiven Typs in sein Wrapper-Objekt durch Java. Unboxing ist der umgekehrte Vorgang: Ein Wrapper wird wieder in einen primitiven Typ umgewandelt.

Dies geschieht automatisch, sodass Sie die beiden Welten ohne manuelle Konvertierungsaufrufe kombinieren können.

Autoboxing in Aktion

Wenn Sie einen int einer Integer-Variablen zuweisen, wird Autoboxing ausgelöst. Der Compiler fügt für Sie einen Aufruf von Integer.valueOf ein.

public class Main {
    public static void main(String[] args) {
        int primitive = 42;
        Integer boxed = primitive;
        System.out.println(boxed);
    }
}

Unboxing in Aktion

Wenn Sie ein Integer einer int-Variablen zuweisen, wird Unboxing ausgelöst. Der Compiler fügt im Hintergrund einen Aufruf von intValue ein.

public class Main {
    public static void main(String[] args) {
        Integer boxed = 99;
        int primitive = boxed;
        System.out.println(primitive);
    }
}

Autoboxing in Collections

Am häufigsten sehen Sie Autoboxing, wenn Sie primitive Werte zu einer Collection hinzufügen. Sie schreiben list.add(5), und Java verpackt die 5 automatisch in ein Integer-Objekt.

import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        List<Integer> nums = new ArrayList<>();
        nums.add(1);
        nums.add(2);
        int first = nums.get(0);
        System.out.println(first);
    }
}

Arithmetik führt zum Unboxing

Wenn Sie arithmetische Operatoren auf Wrapper-Objekte anwenden, entpackt Java diese zunächst in primitive Werte, führt die Berechnung durch und kann das Ergebnis anschließend wieder verpacken.

Im folgenden Beispiel werden zwei Integer-Werte addiert, indem beide zunächst entpackt werden.

public class Main {
    public static void main(String[] args) {
        Integer a = 10;
        Integer b = 32;
        int sum = a + b;
        System.out.println(sum);
    }
}

Primitive Typen und Wrapper kombinieren

Sie können primitive Typen und Wrapper in einem Ausdruck problemlos kombinieren. Java entpackt den Wrapper, sodass beide Seiten während der Berechnung primitive Werte sind.

public class Main {
    public static void main(String[] args) {
        Integer wrapped = 7;
        int raw = 3;
        int product = wrapped * raw;
        System.out.println(product);
    }
}

Autoboxing bei Methodenaufrufen

Autoboxing gilt auch für Methodenargumente. Eine Methode, die ein Object oder einen Wrapper erwartet, kann einen primitiven Wert empfangen, den Java beim Übergeben automatisch verpackt.

public class Main {
    static void show(Object value) {
        System.out.println("Got: " + value);
    }

    public static void main(String[] args) {
        show(123);
        show(true);
    }
}

Die verborgenen Kosten

Autoboxing ist praktisch, aber nicht kostenlos. Jeder Boxing-Vorgang erzeugt ein Objekt, und enge Schleifen können Millionen kurzlebiger Objekte erzeugen.

Für numerische Schleifen, bei denen die Leistung entscheidend ist, sollten Sie direkt mit primitiven Typen statt mit Wrappern arbeiten.

public class Main {
    public static void main(String[] args) {
        long total = 0;
        for (int i = 0; i < 5; i++) {
            total += i;
        }
        System.out.println(total);
    }
}

valueOf im Vergleich zu new

Autoboxing verwendet Integer.valueOf, das kleine Werte zwischen -128 und 127 zwischenspeichert. Der Aufruf von new Integer(...) erzeugt immer ein neues Objekt und ist inzwischen veraltet.

Überlassen Sie die Arbeit vorzugsweise dem Autoboxing.

public class Main {
    public static void main(String[] args) {
        Integer cached = Integer.valueOf(50);
        System.out.println(cached);
    }
}

Ternärer Operator und Boxing

Eine subtile Regel: Wenn in einem ternären Ausdruck ein Zweig ein primitiver Typ und der andere ein Wrapper ist, entpackt Java möglicherweise beide in einen gemeinsamen primitiven Typ.

Das ist meistens unproblematisch. Beachten Sie jedoch, dass dadurch unerwartete Konvertierungen ausgelöst werden können.

public class Main {
    public static void main(String[] args) {
        boolean flag = true;
        Integer result = flag ? 1 : 2;
        System.out.println(result);
    }
}

Wann es hilfreich ist

Autoboxing erleichtert lesbaren Code, wenn Sie primitive Typen mit Generics und Collections kombinieren. Richtig eingesetzt beseitigt es überflüssigen Code. Bei unbedachter Verwendung in häufig ausgeführten Schleifen beeinträchtigt es jedoch die Leistung.

Kurze Überprüfung

Überprüfen Sie Ihr Verständnis der Autoboxing-Regeln.

Zusammenfassung

Sie haben gelernt, wie Autoboxing und Unboxing funktionieren:

  • Autoboxing wandelt einen primitiven Typ mithilfe von valueOf in einen Wrapper um
  • Unboxing wandelt einen Wrapper mithilfe von Methoden wie intValue wieder in einen primitiven Typ um
  • Beides geschieht bei Zuweisungen, in Collections, bei arithmetischen Operationen und bei Methodenaufrufen
  • Es ist praktisch, erzeugt aber Objekte. Vermeiden Sie es daher in häufig ausgeführten Schleifen

Häufig gestellte Fragen

Ist die Lektion „Autoboxing und Unboxing“ kostenlos?

Ja — der vollständige Text von „Autoboxing und Unboxing“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Java Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Java Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Autoboxing und Unboxing“?

Regeln für automatische Konvertierung Du übst Java Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Java Academy zu starten?

Keine Vorkenntnisse erforderlich. Java Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.

Wie lange dauert die Lektion „Autoboxing und Unboxing“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Java Academy-Lektion Code schreiben und ausführen?

Ja. Jede Java Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Primitive oder Wrapper-Typen
  2. Autoboxing und Unboxing
  3. Parsen und Valueof
  4. Stolperfallen beim Autoboxing
← Zurück zu Java Academy