Inicjalizacja bloku statycznego

To fragment kodu Java:

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

Jak się w ogóle kompiluje? Deklaracja zmiennej „ture” została wykonana po inicjalizacji. O ile wiem, statyczne bloki i pola zostały wykonane w kolejności, w jakiej się pojawiają.

A dlaczego ta wartość 9 w bloku instancji została wydrukowana 3 razy? Nawiasem mówiąc, wystąpienie klasy zostało utworzone 3 razy. To nie jest praca domowa, uczę się języka Java do certyfikacji.

questionAnswers(3)

yourAnswerToTheQuestion