Static variables are declared and initialized when the class gets loaded at runtime. Since they are not tied to a specific instance of a class, their declaration and initialization does not wait for an instance of a class to be created. t1 and t3 are declared and initialized when the class is loaded, so the Test construtor is called twice separately and prints Test1, Test3. main() is executed at runtime after the class has been loaded. In main() when an instance of class Q12 is created, its instance variable t2 is declared and initialized. The Test construcor is called and prints Test2.