Was ist der Unterschied zwischen einer statischen Methode und einer nicht-statischen Methode?

Statische Methoden können verwendet werden, ohne ein Objekt der Klasse, in der die Methode implementiert ist, erzeugen zu müssen. Statische Methoden können nur auf statische Felder (Klassenvariablen) zugreifen. Statische Methoden werden oft für mathematische Funktionen und Utility-Klassen verwendet (Math.sin(), Arrays.sort(), System.out.println(), …).

Nicht-statische Methoden können nur im Kontext eines Objekts verwendet werden. Sie können nicht nur auf die statischen Felder der Klasse (Klassenvariablen), sondern auch auf die Zustände des Objekts (Instanzvariablen) zugreifen.