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.