JAVA自增自减运算符详解

在一些大厂笔试题中我们经常会见到这样的题目,让我们说出X的值,
int x = 1;
x = x++;
有程序运行可以计算出
JAVA自增自减运算符详解_第1张图片
在这里插入图片描述
我们可以分析Java虚拟机在内存空开辟的空间中变量的运行原理来清晰理解这道题目的思路。

  1. java虚拟机首先在堆内存中创建一个int类型的变量空间,空间的名字叫做x,并且在变量空间赋值 1 。如图所示
    JAVA自增自减运算符详解_第2张图片
    2.当运行x++这条语句时,X变量空间此时会开辟一个临时的备份空间,用于将X空间内值存入变量空间,变量空间的值用于赋值给其他变量空间。如图所示
    JAVA自增自减运算符详解_第3张图片3.因为++号在x的右边,所以x变量空间会先备份在自增,当在备份空间内把自己的值进行备份之后,自己空间的值才会进行自增到2,如图所示。
    JAVA自增自减运算符详解_第4张图片
    4 此时备份空间会将自己空间内备份值赋值到x变量空间,此时x内空间的值将被覆盖。如图所示。
    JAVA自增自减运算符详解_第5张图片

总结:X++在栈内存空间中先备份在自增,++X在栈内存空间是先自增在备份,此时结果如图所示
JAVA自增自减运算符详解_第6张图片
X–,--X 同理也可得。

你可能感兴趣的:(Java基础语法)