statische Variablen verwendet man für Sachen, die man nur einmal braucht:
- Konstanten, die für alle Instanzen gelten, z.B. String-Schnippsel, Bereichsgrenzen
- "Begrenzte" Ressourcen wie Connection- oder ThreadPools, die sich die Instanzen teilen müssen, weil nur eine beschränkte Anzahl davon existiert oder sonst die Performance den Bach runtergeht.
- Hilfsklassen wie Logger, Formatter, Calendar, Random, Scanner
- Repositories, die den Zugriff auf Instanzen der Klasse z.B. über einen Schlüssel ermöglichen (also im einfachsten Fall Maps)
Man muss dabei vorsichtig sein, wenn man Klassen mit statische Variablen multithreaded verwendet, denn manche Klassen (wie z.B. Calendar oder Formatter) sind nicht threadsicher und können dann falsche Ergebnisse liefern