public static void main(String[] args){
int i=2;
i=i++;
System.out.println(i);
}
这个问题主要是:i=i++和i=++i区别
i=i++ : 程序会先执行i=i之后i ,此时,在栈内存里,存了个,i=2;因为,栈内存里存的有变量等等,而堆内存里存储的有对象等等;所以,就先把2赋给了i。
i=++i : 程序会先执行++1,可以把它看成"i=(i+1)"在执行赋值语句,也就是说"+"在前边就现在+号吗,那就是i=2+1了。所以,这样的话,结果就会变了。
猜想是可能赋值是出现问题。堆内存不变,栈内存读到的依然是原址
|