Vou tentar lhe esplicar em resumo.
Quando uma variável ou método são declarados com o modificado static eles passão a ser denominados de variável/método de classe, ou seja, que não precisam ser instanciados (criar um objeto da classe), para serem usados. Por exemplo vamos supor que exista a seguinte classe:
ClasseExemplo {
public int i;
public static int x;
public static void metodo1();
public void metodo2();
}
Para você ter acesso a variável x e ao método1 basta fazer
ClasseExemplo.x e/ou ClasseExemplo.metodo1(). Ou seja, o nome da classe + . + nome da variável/metodo estático.
Já para acessar a variável i e o método2 você vai precisar fazer o seguinte:
ClasseExemplo objeto_exemplo = new ClasseExemplo();
objeto_exemplo.i
objeto_exemplo.metodo2
Ou seja, o nome do Objeto + . + variável/metodo.
Assim, métodos não estáticos só podem ser usados em instâncias de classes (Objetos), já o estáticos podem ser usados diretamente pela classe. Epero ter ajudado.