Lebensdauer von Objekten


newmem

Grünschnabel
Hallo,

ich hab mal eine Frage zur Lebensdauer von Objekten. Wann beginnt denn die Lebensdauer eines Objektes und wann hört diese auf, also wann sammelt der Garbage Collector das Objekt frühestens ein?

Vielen Dank im Voraus
 

Thomas Darimont

Erfahrenes Mitglied
Hallo!

Die Lebensdauer eines Objektes beginnt mit seiner Instanzierung (new Foo(...)); und endet mit der Vernichtung durch den Garbage Collector.
Diese Instanz "lebt" nun so lange bis sie vom Garbage Collector aufgesammelt oder die JVM vorzeitig beendet wird. Eine Instanz wird vom Garbage Collector weggeräumt, falls die Instanz nicht mehr von anderen Objekten referenziert wird bzw. falls die Referenz nicht mehr von einem Thread aus erreicht werden kann.. (Im einfachsten Fall). Mittels des References API hat man gewisse Interationsmöglichkeiten mit dem Grabage Collector.
"Wrap't" man Objekte beispielsweise in SoftReferences und referenziert man nur noch über diese SoftReferences auf die Instanz, so kann der Garbage Collector die Instanz vor zwecks Vermeidung eines OutOfMemory-Errors wegschaffen( obwohl die Instanz immernoch referenziert wird!). ... Mehr dazu in der API Dokumentation zum References API -> http://java.sun.com/j2se/1.5.0/docs/api/java/lang/ref/package-frame.html

Gruß Tom
 

Neue Beiträge

Forum-Statistiken

Themen
272.361
Beiträge
1.558.639
Mitglieder
187.834
Neuestes Mitglied
jordanx0206