I would cahracterize this one as a bug in the JVM.
I understand why this occurs, but this is not the expected result.
You should not have to think about how the compiler does its work to determine what the answer will be.
The operator is posfix and nobody would expect the result to be 0 when it prints.
Anyone agree or disagree?