Static block initialization of two classes leads to a confusion

48 Views Asked by At

in the following code

public class MyClass {
    
static int a;
int b ;
    static {
        a = 10;
        System.out.println("MyClass a= "+a);
    }
    {
        b = 20;
        System.out.println("MyClass b= "+b);
    }
    

}
 

public class VariableInitialization {
    
static int a;
int b ;
    static {
        a = 10;
        System.out.println("VariableInitialization a= "+a);
    }
    {
        b = 20;
        System.out.println("VariableInitialization b= "+b);
    }
    public static void main(String[] args) {
        VariableInitialization v ;
        MyClass m;
    }

}

The Output is always

VariableInitialization a= 10 VariableInitialization b= 20

why its always getting initialized for VariableInitialization but why not for MyClass?

0

There are 0 best solutions below