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
).
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% 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.
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.
Tags und Links java