why doesn't this code throw NullPointerException
I was just discussing about calling static methods using class name with my friend and tried out this code and expected it to throw NPE at runtime.but as it turn out it dint. i just want to understand the execution order. public class One { public static void method() { System.out.println("in static one"); } } public class Two { static One o; public static void main(String[] args) { o.method(); // expected NPE here, as o is null } } I know that static methods should be invoked with their class name, I even know that IDE's would give a compiler warning when we call static methods with an