Mit welcher Methode in Java werden Ihre Objekte zerstört [geschlossen]

8

Können Sie mir ein Beispiel für meine Frage geben?

    
chandra 21.03.2010, 06:05
quelle

7 Antworten

40

Entschuldigung, aber es gibt nicht wirklich eine "freie" oder "dispose" Entsprechung in Java.

Das Beste, was Sie tun können, ist, das Objekt auf null zu setzen (entfernt die Referenz). Dann sag dem Müllsammler explizit, dass du rambo gehst (irgendwo in java.lang.Runtime ).

    
Rev316 21.03.2010 06:10
quelle
16

Der von Java-Objekten belegte Speicher, auf den nicht mehr zugegriffen werden kann, kann durch den Müll der virtuellen Maschine zurückgewonnen werden Sammler . Wie andere bemerkt haben, ist dies automatisch. Im Gegensatz dazu kann die normale Operation eines Programms bestimmte Systemressourcen zuweisen, die explizit freigegeben werden müssen. Native Bildschirmressourcen sind ein Beispiel. Eine teilweise Liste solcher Methoden enthält diese:

%Vor%     
trashgod 21.03.2010 06:26
quelle
3

Es gibt keine Methode an sich. Die Methode finalize() , die in der obersten Ebene Object definiert ist, kann aufgerufen werden, wenn das Objekt vom Garbage Collector freigegeben wird. Dies ist jedoch kein Verhalten, auf das Sie sich verlassen können.

    
mipadi 21.03.2010 06:07
quelle
3

Java unterstützt keine deterministische Instanzfinalisierung (d. h. C ++ - Destruktoren). Java verfügt über einen Garbage Collector, der von Ihnen aufgerufen werden kann (z. B. Runtime.getRuntime().gc() ), die Laufzeitberichte für Garbage Collected funktionieren jedoch am besten, wenn Sie die Speicherbereinigung allein lassen.

    
Andrew Hare 21.03.2010 06:08
quelle
3

Dies erklärt, wie die Garbage Collection (warum Sie Objekte nicht explizit in Java löschen müssen) funktioniert: Ссылка

Sieh es dir an und stell eine Frage, ob es helfen könnte.

    
corprew 21.03.2010 06:11
quelle
0

Java handhabt automatisch all seine dynamische Speicherzuweisung und Freigabe. Im Prinzip wird jeder Speicher, der nicht mehr von einer benannten Variablen referenziert wird, für die Garbage Collection geeignet (es gibt keine anonymen Variablen). Dies ist der Fall, wenn alle Variablen, die auf diesen Speicher verweisen, auf etwas anderes gesetzt sind oder den Gültigkeitsbereich verlassen.

Die Garbage-Collection wird automatisch ausgeführt, aber es gibt keine bestimmte Zeit, zu der ein Speicher tatsächlich freigegeben wird.

Die meisten Leute werden nicht mehr wissen müssen, aber der Link, der vorher von corprew gepostet wurde, gibt einen schönen Betrag Details in einem intuitiven Format für alle, die daran interessiert sind, mehr zu lernen.

    
David Mason 21.03.2010 06:25
quelle
0

"object destory" wird automatisch von jvm in Java ausgeführt, wenn das Objekt für den Garbage Collector geeignet ist.

zum Beispiel ..

%Vor%     
Manu 21.03.2010 06:49
quelle

Tags und Links