考虑这个代码片段
int j = 7;
System.out.println(Integer.toBinaryString(j));
j = ~j++;
System.out.println(Integer.toBinaryString(j));
印刷
111
11111111111111111111111111111000
我期待看到什么
111
11111111111111111111111111111001
首先我认为它可能是 ~ 和 ++ 的优先级
如果 ~ 在 ++ 之前被评估,答案将是
11111111111111111111111111111001
否则,如果 ++ 之前评估过 ~
11111111111111111111111111110111
我搜索了Oracle 教程,但找不到答案。谁能解释这种行为?