почему этот код не генерирует исключение NullPointerException

Я только что говорил о вызове статических методов с использованием имени класса с моим другом, опробовал этот код и ожидал, что он сгенерирует NPE в runtime.but, как оказалось, что он не работает. я просто хочу понять порядок исполнения.

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
    }
}

Я знаю, что статические методы должны вызываться с их именем класса, я даже знаю, что IDEs выдает предупреждение компилятору, когда мы вызываем статические методы с экземпляром, но мы могли бы также вызвать их, создав экземпляр, однако, я никогда не создавал экземпляр здесь,o должен получить значение по умолчанию null, вызываяo.method() должен бросить NPE во время выполнения, но это нет. Ребята, не могли бы вы пролить свет на порядок выполнения в этом коде?

Ответы на вопрос(5)

Ваш ответ на вопрос