Karte enthält eine Liste der Adressen im Speicher. Diese Adressen halten die Werte, die Sie speichern mit
map.put(object);
jedes Mal, wenn Sie möchten, einen bestimmten Wert abzurufen, die Sie im Speicher abgelegt haben Sie in der Adresse der Stelle vorbei, wo Sie Ihren Wert an und als Ergebnis gespeichert Sie erhalten Ihren gespeicherten Wert.
Zurück zu Ihrer Frage, wenn Sie den Wert aus der Karte entfernen, was wirklich passiert ist, verlieren Sie die Adresse des Ortes, wo Sie Ihren Wert gespeichert haben. Und es gibt keine andere Möglichkeit, auf diesen Wert zuzugreifen. Der Wert ist zwar immer noch im Speicher, aber Sie können ihn nicht verwenden, da Sie die Adresse seines Speicherorts gelöscht haben. Garbage Collector spült diesen Wert, aber Sie können den Garbage Collector nicht ausführen. Das Beste, was Sie tun können, ist System.gc() aufzurufen, was einfach ein Hinweis auf den Garbage Collector ist, den Sie eine Sammlung machen möchten. Und es wird jede beliebige zufällige Zeit ausgeführt oder wenn JVM mehr Speicher benötigt.
Als Ihr Senior erwähnt, dass es in 2-3 Tagen Müll gesammelt wird, nehme ich an, er spricht nur hypothetisch, weil Sie nie wissen, wann der Garbage Collector ausgeführt wird und den Speicher löschen.
Sehr zweifelhaft – Antoniossss
"ist das wahr" klingt sehr zweifelhaft; Sie sollten ihn nach einer Erklärung fragen (Sie werden auf die eine oder andere Weise etwas lernen: dass es ein tatsächliches Problem ist und warum, oder dass Sie nicht auf diese Person hören sollten). Aber auf jeden Fall scheint auch das, was Sie zu tun versuchen, fragwürdig. –
hi einfach vergessen, was ich versuche oder Anforderung! Wenn eine Klasse, die mit @service und einer darin enthaltenen globalen Variable versehen ist, die Daten speichert, bis der Server stoppt, oder wird nach einigen Tagen ein Müll gesammelt? –