KlassenAttribute dekrementieren

Status
Nicht offen für weitere Antworten.
G

Gast

Gast
Moin,

mal ne blöde Frage zu den Klassen- Attributen, wenn ich in einer Klasse ein KlassenAttribut habe, z.B.: Anzahl_Personen und ich dieses KlassenAttribut immer um 1 erhöhe, wenn eine Instanz der Klasse erzeugt wird, dann habe ich ja die Anzahl der Personen, die Erzeugt wurden - no na.

Meine Frage ist jetzt, wie ich es mitbekomme, wenn eine Instanz vom GC wieder gelöscht wird, damit ich die Anzahl_Personen um 1 verringern kann.

In C++ gibt es da ja den Destruktor und in diesem kan ich die Klassenvariable dekrementieren, wie mache ich das in Java.

Vielen Dank,
 

didjitalist

Bekanntes Mitglied
in java musst du dich selbst darum kümmern, dass solche aktionen durchgeführt werden. wie in c++ auch, wenn deine objekte auf dem heap erzeugt wurden ;)

du kannst zwar Object#finalize() überschreiben, die ruft der GC an jedem objekt, das er entsorgt. aber es ist nicht garantiert, wann diese methode aufgerufen wird. es kann sogar sein, dass sie nie gerufen wird.
 

Ebenius

Top Contributor
didjitalist hat gesagt.:
du kannst zwar Object#finalize() überschreiben, die ruft der GC an jedem objekt, das er entsorgt. aber es ist nicht garantiert, wann diese methode aufgerufen wird. es kann sogar sein, dass sie nie gerufen wird.

Ich denke, didjitalist meint das gleiche wie ich und hat sich nur ungünstig ausgedrückt: Es ist ganz klar definiert, wann diese Methode aufgerufen wird (nämlich direkt bevor der GC das Objekt einsammelt). Es ist nur nicht klar, wann der GC das Objekt genau einsammelt.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen

Ähnliche Java Themen

Neue Themen


Oben