越是对一门语言深刻了解,就会发现本身不知道的东西越多,这才是走向了正道,一样的,对于java语言特性的学习,笔者也只是初窥门径。java
首先咱们来看一下“i=i++”这个语句的执行原理。学习
首先咱们编译运行一下:spa
能够看到执行的结果为0,为何呢,咱们反编译A.class。blog
咱们能够看到编号为2,3,6的三段汇编代码,其中2表明着将i的值读入一个变量之中,3表示将读到的i值自增,6表明将存入临时变量中的值从新写入i中,所以以后打印出来的仍是i自己。编译器
这个过程能够表示以下:编译
temp=i; i++; i=temp;
所以在java中,使用i=i++并不能达到自增的目的,反而是原地踏步,而在C语言中可能会有不一样的结果,这与编译器最终的解释执行有关。class