Also zusammengefasst kann man sagen:
Ein statischer Initialisierungsblock wird verwendet, wenn man irgendeinen Code einmal für alle Objekte einer Klasse ausführen will.
Instanz-Initialisierungsblöcke sind nützlich, wenn man Code ausführen lassen möchten, unabhängig davon, welcher Konstruktor verwendet wird oder ob man eine Instanzinitialisierung für anonyme Klassen durchführen möchten.
Die Reihenfolge der Ausführung:
- statische Initialisierungsblöcke der Superklassen
- statische Initialisierungsblöcke der Klasse
- Instanz-Initialisierungsblöcke der Superklassen
- Konstruktoren der Superklassen
- Instanz-Initialisierungsblöcke der Klasse
- Konstruktor der Klasse
Den letzten Teil habe ich noch nicht verstanden:
"...oder ob man eine Instanzinitialisierung für anonyme Klassen durchführen möchten."