public class TestLab {
static Test aStatic=new Test();
public static void main(String[] args) {
TestLab obj=new TestLab();
}
static{
System.out.println("In static block of TestLab");
}
}
public class Test {
static Test ref=new Test();
Test()
{
System.out.println("Default Constructor of Test");
}
static
{
System.out.println("In Static Block of Test");
}
{
System.out.println("In instance block of Test");
}
}
Normalmente i blocchi statici vengono eseguiti per primi durante il caricamento della classe. Quando si esegue l'esempio precedente, il seguente output ricevuto:Quando gli oggetti vengono creati con riferimento statico, perché il blocco di istanze e il costruttore predefinito vengono eseguiti prima del blocco statico?
In istanza del blocco di prova
default Costruttore di prova
In Static Blocco di prova
In caso di blocco di prova
default Costruttore di prova
In statica blocco di TestLab
Perché il blocco di istanza e costruttore di default della classe Test viene eseguito prima del blocco statico della classe di prova?
possibile duplicato di http://stackoverflow.com/questions/2420389/static-initialization-blocks – Arunachalam
@Arunachalam: Questo non risponde a questa domanda. –