This is a snippet of Java code:
static {
ture = 9;
}
static int ture;
{ // instance block
System.out.println(\":\"+ture+\":\");
The static initializers are executed in the order in which they appear and the declarations aren't executed at all, that's how they got their name. This is why your code compiles without problems: the class structure is assembled at compile time from the declarations, and the static blocks are executed at runtime, long after all the declarations have been processed.