Eine statische Variable kannst Du nicht so ohne weiteres löschen. Wie
@Mart schon angedeutet hat: Du müsstest dazu die Klasse aus dem Speicher entfernen. Das würde gehen, wenn Du die Klasse über einen eigenen, dedizierten Classloader geladen hast und du dann alle Referenzen "löschst", die.
- auf den Classloader
- alle Klassen, die dieser geladen hat
- alle Instanzen von Klassen, die dieser geladen hat
wegwirfst.
Dann würde irgendwann der Classloader und alles was dran hängt vom Garbage Collector eingesammelt und gelöscht werden.
Aber: Das ist nichts, das man in der Regel so macht. Vermutlich meinst/willst Du etwas ganz Anderes. Und das, was da notwendig wäre, wäre auch etwas, das man gut durchdacht haben sollte und auch im Detail überblicken sollte. Denn da kommen dann halt auch so Spielchen, dass Du eine Klasse mehrfach laden kannst und dann hast Du z.B. eine statische Variable mehrfach! (Und alles, was darauf basiert ... also ein Singleton ist dann kein Singleton mehr und all sowas
)
Und generll wird auch nie etwas von einem selbst gelöscht. Es ist etwas, das ggf. von der Speicherverwaltung gemacht wird. Das "Ob" und "Wann" liegt nicht in Deiner Hand!