生活点滴:java基础知识细化

时间:2023-03-09 16:34:03
生活点滴:java基础知识细化

生活点滴:java基础知识细化

一、前言

越是对一门语言深入了解,就会发现自己不知道的东西越多,这才是走向了正道,同样的,对于java语言特性的学习,笔者也只是初窥门径。

二、java基础知识思考

i=i++

   首先我们来看一下“i=i++”这个语句的执行原理。

生活点滴:java基础知识细化

   首先我们编译运行一下:

生活点滴:java基础知识细化

可以看到执行的结果为0,为什么呢,我们反编译A.class。

生活点滴:java基础知识细化

    我们可以看到编号为2,3,6的三段汇编代码,其中2代表着将i的值读入一个变量之中,3表示将读到的i值自增,6代表将存入临时变量中的值重新写入i中,因此之后打印出来的还是i本身。

     这个过程可以表示如下:

temp=i;
i++;
i=temp;

    因此在java中,使用i=i++并不能达到自增的目的,反而是原地踏步,而在C语言中可能会有不同的结果,这与编译器最终的解释执行有关。