Veja, você pode ter uma classe assim
public class Foo {
public void boo() {
System.out.println("blablabla");
}
}
Esta é a classe, ok? Você pode criar uma instância de objeto dela da seguinte forma
Foo foo = new Foo(); // foo, com letra minúscula, é a instância de objeto da classe Foo
Para invocar o método boo, você precisa fazer a referência a partir do objeto foo
Veja que o método boo não tem a palavra estática em nenhum lugar.
Agora, se eu altero e insiro a palavra static antes do método, temos
public class Foo {
public static void boo() {
System.out.println("blablabla");
}
}
Agora, se eu quero invocar o método boo, posso fazê-lo direto
Pois o mesmo é estático, ou seja, pertence à classe e não a seus objetos.
Vai funcionar se eu fizer isso
Foo foo1 = new Foo();
foo1.boo();
Mas, como é estático, não é a forma mais adequada de se fazer.
Ficou mais claro?