Все, что мы кодируем в Java, входит в класс. Всякий раз, когда мы запускаем класс, JVM создает объект. JVM может создавать несколько объектов, по определению Static означает, что у вас одинаковый набор копий для всех объектов.
Таким образом, если бы Java позволяла верхнему классу быть статичным при каждом запуске программы, она создает объект и переопределяет одно и то же место в памяти.
Если Вы просто заменяете объект каждый раз, когда запускаете его, какой смысл его создавать?
Вот почему Java избавилась от статики для класса верхнего уровня.
Могут быть и более конкретные причины, но для меня это логично.
static
?