Porque funciona o metodo se for invertido a visibilidade com o static

Ola Pessoal,

Tava procurando um exemplo no forum de outro país e encontrei a seguinte descrição do método main:

public class Main {

    static public void main(String a[]) {
        System.out.println("Isso funciona perfeitamente, por que??");
    }
}

Porque isso funciona, se eu declarar static primeiro e depois a visibilidade? Alguém tem idéia, ou isso é um erro mesmo do java?

Obrigado,
Helder

www.google.com.br

“a ordem dos fatores não altera o produto”