O erro, por incrível, que pareça está num ponto e virgula!
Perceba isso
while(contador <= 10);
esse ponto e virgula depois do while encerra ele...
quando rodar ele ficará em "loop infinito", já que não alterarei o contador, e não dará erro de compilação por que o bloco a seguir será válido, encapsular o código entre {} é chamado bloco.
o código corrigido será assim (disponível para rodar em https://repl.it/@chicofig/LacoWhile) :
class Main {
public static void main(String[] args) {
int contador = 0;
while(contador <= 10) {
System.out.println(contador);
contador += 1;
// += contador = contador + 1
//contado ++ (contador mais ele mesmo )
}
System.out.println(contador);
}
}