Um über die Behandlung von Instanzen nachzudenken, die mir zu Beginn nicht bekannt waren, unterdrücken Sie zunächst die grundlegenden Spezifikationen von Java wie die Garbage Collection
Eine Funktion, die die der JVM bei Ausführung des Programms zugewiesene Speicherkapazität verwaltet und den Speicherbereich entsprechend freigibt, um Speicherverluste zu vermeiden.
Bei der Programmierung, nicht auf Java beschränkt, wie in 1 gezeigt, werden verschiedene Variablen und Anweisungen im Speicher gespeichert und von der CPU entsprechend verarbeitet. Wenn es gespeichert wird, verbraucht es natürlich die Speicherkapazität des Speichers, so dass es notwendig ist, unnötige Variablen und Anweisungen zu löschen, um die dem Programm zugewiesene Kapazität nicht zu überschreiten. ** ** **
→ Wenn die Kapazität überschritten wird ... (Für Java) OutOfMemoryError wird angezeigt und das Programm wird zwangsweise beendet.
Zu diesem Zeitpunkt musste die Programmierseite in C-Sprache usw. den Speicherbereich im Code explizit freigeben, in objektorientierten Sprachen wie Java und funktionalen Programmiersprachen wie Haskell ist dies in Abb. 2 dargestellt. Es hat eine Funktion namens Garbage Collection, über die wir dieses Mal sprechen werden, und es verwaltet den Speicher fast automatisch.
Da das Programm jedoch auch während der Ausführung des GC ausgeführt wird, ist es ein Problem, wenn unnötige Dinge ordnungsgemäß gelöscht werden. Daher wird ein bestimmter Standard von "unnötig" festgelegt, und GC wird gemäß diesem Standard betrieben. Im Fall von Java wird die Beurteilung durch die folgenden Faktoren vorgenommen.
** · Von keinem anderen Element referenziert **
Daher können je nach Design Speicherlecks auftreten. Darüber hinaus können abhängig von der Häufigkeit des GC-Betriebs die folgenden Probleme auftreten.
** ・ Die Verarbeitung verzögert sich aufgrund häufiger GC **
Da die Anwendung vorübergehend gestoppt wird, während der GC ausgeführt wird, treten Probleme auf, wenn der GC häufig auftritt. Außerdem kann die GC-Stoppzeit einfach länger werden. Obwohl dies beim nächsten Mal beschrieben wird, gibt es verschiedene Arten von GC, und abhängig von den Spezifikationen wird der Speicher möglicherweise nicht freigegeben, und es kann ein Speicherverlust auftreten, selbst wenn der GC arbeitet.
Was ist GC in JavaVM?