Incremento de Java y operador de asignación

Estoy confundido sobre el operador post ++ y pre ++, por ejemplo en el siguiente código

int x = 10;
x = x++;

sysout(x);

imprimirá 10?

Imprime 10, pero esperaba que imprimiera 11

pero cuando lo hago

x = ++x; instead of x = x++;

imprimirá once como esperaba, entonces ¿por qué x = x ++; no cambia el valor de x?

Respuestas a la pregunta(6)

Su respuesta a la pregunta