la parola chiave static serve a identificare un metodo o un attributo di classe.

esempio
codice:
public Class Prova
{
     public static int i=0;
     public int j=0;

     public Prova()
     {
          i++;
          j++;
     }
}
nel main se scrivi System.out.println(Prova.i); non ti da errore perchè i è un attributo della classe Prova se invece System.out.println(Prova.j); ti darà errore perchè j è un attributo di istanza ed è quindi necessario instanziare una variabile di tipo Prova

inoltre prova a vedere cosa ti stampa se nel main fai questo
Prova a=new Prova();
System.out.println("I valori i e j nell'istanza a hanno valore "+a.i+" e "+a.j);
Prova b=new Prova();
System.out.println("I valori i e j nell'istanza b hanno valore "+b.i+" e "+b.j);

//OUTPUT
I valori i e j nell'istanza a hanno valore 1 e 1
I valori i e j nell'istanza b hanno valore 2 e 1