Es gibt den dezenten Hinweis für Anfänger, dass man relativ schnell zusehen sollte, dass bis auf die main Methode nichts static ist.
Static ist aber nicht per se böse. Ein Problem ist, wenn man einen statischen Zustand irgendwo hat. Das scheint einem als Anfänger ganz toll zu sein, weil man da ja von überall drauf zugreifen kann. Aber das wird schnell zu einem Albtraum:
a) Du hast dann wirklich nur den einen globalen Zustand. Wenn Du testen willst, ist das deutlich komplexer, denn du musst dann immer aufpassen, was denn gerade für ein Zustand ist.
b) Du kannst von überall darauf zugreifen. Ja, 1:1 was am Anfang ein Vorteil schien wird jetzt negativ. Denn Du weisst nicht, wann von wo wer zugegriffen hat. Also wenn Du einen Fehler suchen musst, dann ist es extrem!
Statische Methoden sind für mich eigentlich nur dann interessant / zulässig, wenn diese ohne inneren Zustand auskommen. Es verändert sich nichts. Du gibst oben etwas rein und dann kommt unten etwas raus. Und das ist unabhängig von allen anderen Sachen. Und - ähnlich wie bei den Utility Methoden - Factory Methoden.