Blaubart: Speichermanagement

Mahlzeit.

Kann mir einer der Javanutzer hier folgende Frage beantworten?

Auto a;
a = new Auto();
a = new Auto();

Erzeugt dieser Code tatsächlich nur ein Objekt vom Typ Auto oder werden zwei Objekte erzeugt, von denen allerdings nur das zweite referenziert und das erste quasi sofort nach dem Erzeugen zum Abschuß für den Garbage Collector freigegeben wird?

  1. Hallo,

    Auto a;
    a = new Auto();
    a = new Auto();

    Erzeugt dieser Code tatsächlich nur ein Objekt vom Typ Auto oder werden zwei Objekte erzeugt, von denen allerdings nur das zweite referenziert und das erste quasi sofort nach dem Erzeugen zum Abschuß für den Garbage Collector freigegeben wird?

    Letzteres.

    (Wieso sollte nur ein Objekt erzeugt werden? Stell dir vor im Auto-
    Konstruktor würde eine wichtige Aktion durchgeführt werden. Würde nur
    einmal Auto erzeugt werden, würde diese Aktion nur einmal ausgeführt
    werden. Und das ist natürlich ungewünscht.)

    Gruß
    Slyh