Por que 09 é "muito grande" de um número inteiro? [duplicado

Eles acham que é:

Possible Duplicate:
Integer com zeros à esquerda

Mas se você marcarInteger com zeros à esquerda, você descobrirá que a pergunta é feita antes do lançamento do jdk7 e, portanto, ele tem menos esforços de pesquisa. Mas no jdk7 há alguma alteração e adição aos números inteiros. Aqui estão as respostas atualizadas sobre o jdk7.

Eu tenho um código:

class Test{
    public static void main(String[] args){
        int x=09;
        System.out.println(x);
    }
}

Na compilação, ocorre um erro: número inteiro muito grande: 09

Por que isso acontece?

Novamente, se eu alterar o código para:

class Test{
    public static void main(String[] args){
        int x=012;
        System.out.println(x);
    }
}

Agora a saída é 10

Por que dar a saída 10 em vez de 12?

questionAnswers(5)

yourAnswerToTheQuestion