Cómo funciona a = a ++ en java [duplicado]

Esta pregunta ya tiene una respuesta aquí:

comportamiento de incremento de poste [duplicado] 4 respuestas

Recientemente me encontré con este fragmento de código Java:

int a=0;
for(int i=0;i<100;i++)
{
    a=a++;
}
System.out.println(a);

El valor impreso para 'a' es 0. Sin embargo, en el caso de C, el valor para 'a' resulta ser 100.

No puedo entender por qué el valor es 0 en el caso de Java.