Confundindo-se com == e = na declaração "se"

Eu sei que não podemos usar o operador de atribuição em instruções if em java, como usamos em outros idiomas.

isso é

            int a;

            if(a = 1) {  } 

dará um erro de compilação.

mas o código a seguir funciona bem, como?

           boolean b;

           if(b = true) {   }

EDIT: É essa a exceção para determinar que a atribuição não pode ser usada na instrução if.

questionAnswers(5)

yourAnswerToTheQuestion