Любой начинающий программист начинает с создания метода main(), а мы просто начинаем писать public static void main(String[] args)

Вы когда-нибудь думали или запускали программу, удаляя ключевое слово static.

Я только что попытался запустить программу, удалив ключевое слово static. Вот ошибка:

Error: Main method is not static in class com.javasample.basicjava, please define the main method as:
public static void main(String[] args)

Итак, почему эта ошибка? Что происходит внутри?

мы знаем, что когда мы делаем метод статическим, он принадлежит классу, и поэтому для вызова этого метода не требуется никакого объекта. К этому методу можно получить прямой доступ через имя класса

Теперь, если мы удалим ключевое слово static из метода main(), ошибки компиляции не будет. Но когда он начинает выполнять код, JVM загружает класс в память и пытается вызвать метод main(), чего не может произойти, поскольку он не является статическим и отсутствует в памяти класса. JVM не может найти метод main().

Поэтому выдает ошибку времени выполнения.