Mit static werden Variablen, Methoden oder Typen in einer Klasse derart definiert, dass sie ohne ein Objekt nutzbar sind. Das widerspricht dem Ansatz der Objektorientierung. Außerdem gibt es von einer statischen Variable nur ein Exemplar.
static ist nicht per se falsch, sonst gäbe es das Schlüsselwort in der Sprache erst gar nicht, aber man muss wissen, wann man es einsetzt bzw. wann nicht.
Willst Du global verfügbare Konstanten definieren? Dann bist Du mit static final richtig.
Willst Du reine Funktionen definieren, die nur die übergebenen Parameter verwenden? Dann ist Du mit static richtig.
Willst Du die main-Methode schreiben? Dann brauchst Du static.
In allen anderen Fällen braucht es schon einen guten Grund, um static zu verwenden.
Und was soll ich sonst benützen?
Man könnte ja nur mit setter und getter arbeiten aber geht das nicht leichter?
Zu ersten Frage: Objekte. Zur zweiten: das hat nichts damit zu tun, ob Du eine Variable static deklarierst oder nicht.