I'll just add a little bit of detail to what Keith said (again assuming that i is 10).
i = i++; is a simple assignment, so first the "left-hand operand is evaluated to produce a variable." In this case, i. (See
JLS - 15.26.1.)
Next, the right hand-hand operand is evaluated. With a postfix operator, the term i++
evaluates to 10,
after which i is incremented to 11. (See
JLS - 15.14.2.)
Finally, because the right-hand operand evaluated to 10, the value 10 is stored into the varaible i.