Проще говоря, Java поддерживает объявление класса статическим только для внутренних классов, но не для классов верхнего уровня.
классы верхнего уровня: Java-проект может содержать более одного класса верхнего уровня в каждом исходном файле Java, один из классов назван по имени файла.Перед классами верхнего уровня допускаются только три параметра или ключевые слова: public, abstract и final .
Внутренние классы: классы, которые находятся внутри класса верхнего уровня, называются внутренними классами, что в основном является концепцией вложенных классов. Внутренние классы могут быть статическими .Идея сделать статические внутренние классы состоит в том, чтобы воспользоваться преимуществами создания экземпляров объектов внутренних классов без создания экземпляра объекта класса верхнего уровня.Это точно так же, как статические методы и переменные работают внутри класса верхнего уровня.
Следовательно, Java поддерживает статические классы на уровне внутреннего класса (во вложенных классах)
И Java не поддерживает статические классы на классах верхнего уровня.
Надеюсь, это даст более простое решение вопроса для базового понимания статических классов в Java.