Inicialización de bloque estático

Este es un fragmento de código Java:

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

¿Cómo es que se compila en absoluto? La declaración de la variable 'tura' se ha realizado después de la inicialización. Por lo que sé, los bloques y campos estáticos se han ejecutado en el orden en que aparecen.

Y ahora, ¿por qué ese valor 9 dentro del bloque de instancia se ha impreso 3 veces? Por cierto, la instancia de la clase ha sido creada 3 veces. Eso no es una tarea, estoy aprendiendo Java para la certificación.

Respuestas a la pregunta(3)

Su respuesta a la pregunta