Statische Blockinitialisierung

Dies ist ein Ausschnitt aus Java-Code:

static {        
    ture = 9;       
}
static int ture;
{ // instance block 
    System.out.println(":"+ture+":");           
}

Wie ist das überhaupt kompiliert? Die Deklaration der Variablen 'ture' wurde nach der Initialisierung durchgeführt. Soweit ich weiß, wurden statische Blöcke und Felder in der Reihenfolge ausgeführt, in der sie angezeigt werden.

Und warum wurde dieser Wert 9 innerhalb des Instanzblocks nun dreimal gedruckt? Die Instanz der Klasse wurde übrigens dreimal erstellt. Das ist keine Hausaufgabe, ich lerne Java für die Zertifizierung.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage