最近做了一道题,非常容易落入陷阱。
当count初始值为0,count=count++;和count=++count;运行出来的结果是不一样的。count=count++运行出来的结果依旧为0;
这是因为JVM运行时,会把count变量拷贝到到临时变量区,count的值0放入操作数栈中,此时count=0,count++后是先加一后赋值,对局部变量表的count加1,然后再把操作数栈中的0出栈赋值给局部变量表。所以虽然count变为1,但是最后赋给count的值依然为0。
最近做了一道题,非常容易落入陷阱。
当count初始值为0,count=count++;和count=++count;运行出来的结果是不一样的。count=count++运行出来的结果依旧为0;
这是因为JVM运行时,会把count变量拷贝到到临时变量区,count的值0放入操作数栈中,此时count=0,count++后是先加一后赋值,对局部变量表的count加1,然后再把操作数栈中的0出栈赋值给局部变量表。所以虽然count变为1,但是最后赋给count的值依然为0。