In C++ gibt es ein "object reference count" der es ermöglicht, die References zu zählen, die zu einem Objekt existieren. Kann mir vielleicht jemand sagen, ob es sowas in Java auch gibt, oder ob das hier überflüssig ist?!?
Vielen Dank im Voraus...
Wenn du mit "java Xyz" ein Programm startest, dann startet ausser der Xyz.main auch noch sofort ein Hintergrund-Thread ("die Garbagge Collection"), der sich um das Aufräumen des Speichers kümmert, und zwar mit wesentlich komplexeren Methoden als einem Reference Count
Ich brauche die Infos für einen Vortrag. Ich wußte, das es ein Garbage Collector für C# gibt, aber das er auch bei JAVA eingesetzt wird, war mir neu. Der Reference Count dient also nur der Speicherverwaltung?
anhand des Reference-Counts weiß der GC, wann er ein Objekt entfernen kann. Da man in Java mangels Pointer nicht einfach so in den Speicher greifen kann, ist ein Objekt ohne Referenzen auch tatsächlich weg und kann nicht mehr reaktiviert werden.
Interessant wird die Sache bei Ring-Verkettungen, die aber von außen nicht referenziert werden
Und übrigens: C# ist doch quasi der mikrosoftsche Java-Clone, wo sie alle tollen Features (und damit auch den GC) übernommen haben.
anhand des Reference-Counts weiß der GC, wann er ein Objekt entfernen kann. Da man in Java mangels Pointer nicht einfach so in den Speicher greifen kann, ist ein Objekt ohne Referenzen auch tatsächlich weg und kann nicht mehr reaktiviert werden.
THX. Das hat mir auf jeden Fall schon weitergeholfen.
Aber wenn es in JAVA kein Rerference-Count gibt, wie kann dann der GC daurauf zugreifen?
Gruß Thotto
also intern gibt es sowas natürlich höchstwahrscheinlich. Nur der ist sowas von intern, daß wir hier mal eben geschrieben haben, daß es keinen gibt
Also falls du noch detailliertere Infos dazu brauchst, solltest du nach Infos zur VM und zum GC ausschau halten.
EDIT: Ja genau, ich hab vor längerer Zeit mal ein Dokument über die Arbeitsweise des GC gelesen und da war glaube ich auch vom Reference-Count die Rede.
Dann werde ich jetzt mal die Google_Maschine anschmeißen. Weißt Du zufällig noch, wo dieses Dokument zu finden war? Habe bei wikipedia schon einige Interessante Sachen gefunden, aber in Verbindung mit VM wär natürlich noch besser. :wink:
Dann werde ich jetzt mal die Google_Maschine anschmeißen. Weißt Du zufällig noch, wo dieses Dokument zu finden war? Habe bei wikipedia schon einige Interessante Sachen gefunden, aber in Verbindung mit VM wär natürlich noch besser. :wink: