/ / Würde Java Garbage Collector die nicht verwendete Klasse freigeben? - Java, JVM, Java-Bytecode-ASM

Würde Java Garbage Collector freie Klasse freigeben? - java, jvm, java-bytecode-asm

Mein Programm generiert mithilfe der ASM-Bibliothek eine Ad-hoc-Klasse für eine effiziente Berechnung. Jeder Aufruf generiert eine neue Klasse.

Die Instanz des Klassenladeprogramms, die die Ad-Hoc-Klasse und alle Instanzen der Ad-Hoc-Klasse definiert, ist in kurzer Zeit nicht erreichbar. Wird der Adhoc-Klassencode danach freigegeben?

Antworten:

3 für die Antwort № 1

Ja, nachdem der Klassenladeprogramm zur Garbage Collection berechtigt ist, sind auch die geladenen Klassen zur Garbage Collection berechtigt (sofern keine anderen Verweise auf die Klassen vorhanden sind).


0 für die Antwort № 2

Kommt darauf an, was du "danach" meinst. Sie können die Ausführung des Garbage Collectors nicht erzwingen, die Umgebung entscheidet selbst, ob sie ausgeführt wird oder nicht, selbst wenn Sie sie "explizit aufrufen".

Tatsächlich bedeutet das Aufrufen des Befehls gc zum Ausführen lediglich, dass er zum Ausführen aufgefordert wird.

Also: Wird eine Variable, auf die nicht mehr verwiesen wird, bereinigt? Ja. Wann wird es passieren? Dies können wir nicht mit Sicherheit sagen. Grundsätzlich lautet die Antwort auf diese Frage: "Wenn der Generaldirektor beschließt, es aufzuräumen".