Objektreferenzen und Lebensdauer


Eine Objektreferenz ist eine Variable, die mit einer Klasse als Typangabe deklariert wird. Eine solche Objektreferenz kann einen Verweis auf die Instanz einer passenden Klasse aufnehmen. Was genau passend heißt, wird später behandelt.

Durch Deklaration einer Objektreferenz wird nie die Instanz selbst geschaffen, dazu ist irgendwo der Aufruf von new erforderlich (Konstruktorruf). Ein Objekt entsteht also mit new. Ein Objekt bleibt am Leben, solange es jemand kennt; solange also irgendeine Objektreferenz auf das Objekt verweist. Gibt es überhaupt keine auf die Instanz verweisende Objektreferenz mehr, ist das Objekt unerreichbar und damit fast schon tot. Ein spezieller Mechanismus, die Garbage Collection (Müllsammlung), entfernt das Objekt auch physisch bei passender Gelegenheit. 

Verweisen mehrere Objektreferenzen auf das gleiche Objekt und wird es über eine Referenz geändert, so ändert sich das Objekt; diese Änderung wird dann auch über die anderen Referenzen sichtbar.

Im Gegensatz zu Objektreferenzen gibt es auch Variablen mit nativem Typ wie int oder boolean . Diese Variablen sind nicht als Referenz implementiert, sondern sie nehmen den Wert direkt auf. Wird hier also der Wert geändert, wirkt sich das nicht auf andere Variablen aus, die zufällig den gleichen Wert tragen.