好吧,让我们看看字节码(用来自己看):javap -c <classname>
Compiled from "PostIncTest.java"
class myCounter extends java.lang.Object{
myCounter();
  Code:
   0:   aload_0
   1:   invokespecial   #1; //Method java/lang/Object."<init>":()V
   4:   aload_0
   5:   iconst_1
   6:   putfield    #2; //Field _ix:I
   9:   return
public int ixAdd();
  Code:
   0:   aload_0
   1:   dup
   2:   getfield    #2; //Field _ix:I
   5:   dup_x1
   6:   iconst_1
   7:   iadd
   8:   putfield    #2; //Field _ix:I
   11:  ireturn
}
如您所见,中的指令 6 和 7 在返回之前处理增量。因此,正如我们所期望的那样,递减运算符在 return 语句中使用时确实会产生影响。但是,请注意,在这两个出现之前有一个指令;递增的值(当然)不会反映在返回值中。ixAdd()dup