在这里JVM里面有两个存储区,一个是暂存区(以下称为堆栈),另一个是变量区。j=j++是先将j的值(0,原始值)存入堆栈中(对应图中分配一块新的内存空间),然后对自变量区中j自加1,这时j的值确实是1,但随后将堆栈中的值赋给变量区的j,所以最后j=0;
而j=++j,是先对变量区中的j加1,再将自变量区中的j值(1)存入堆栈,最后将堆栈中的值赋给自变量区的j,所以j=1;
在这里JVM里面有两个存储区,一个是暂存区(以下称为堆栈),另一个是变量区。j=j++是先将j的值(0,原始值)存入堆栈中(对应图中分配一块新的内存空间),然后对自变量区中j自加1,这时j的值确实是1,但随后将堆栈中的值赋给变量区的j,所以最后j=0;
而j=++j,是先对变量区中的j加1,再将自变量区中的j值(1)存入堆栈,最后将堆栈中的值赋给自变量区的j,所以j=1;
本文标题:60 j=j++
本文链接:https://www.haomeiwen.com/subject/isvnndtx.html
网友评论