Java-Inkrement- und Zuweisungsoperator

Ich bin verwirrt über den Operator post ++ und pre ++, zum Beispiel im folgenden Code

int x = 10;
x = x++;

sysout(x);

druckt 10?

Es gibt 10 aus, aber ich habe erwartet, dass es 11 ausgeben sollte

Aber wenn ich es mache

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

es wird wie erwartet elf ausgeben, warum also x = x ++; ändert sich der Wert von x nicht?