Bem, primeiro você deve entender o significado da palavra estático (acredito que vc já saiba)
estático -> algo que não muda; não é dinamico; constante.
Ou seja, um método estático não muda a sua o resultado de seu processamento conforme a instancia do objeto.
Métodos estáticos são excelentes quando não é necessário trabalhar com nenhum atributo da classe ou quando os atributos que ele utiliza são estaticos (constantes) tbm.
Observe o método estático, getConnection(), suponha que a esta conexão é usada em diversas partes do seu projeto, se nosso metodo não fosse estático ficaria muito chato ter que criar uma instância a cada conexão, tipo:
X x = new X();
java.sql.Connection conn = x.getConnection();
Mas como nosso metodo é estático podemos fazer da seguinte maneira:
java.sql.Connection conn = X.getConnection();
Como nosso método é estático, ele é carregado quando a classe “sobe” pela maquina virtual, por isso temos acesso direto a ele.
Essa explicação e bem simples… estou estudando para a certificação e espero que te ajude.