码迷,mamicode.com
首页 > 其他好文 > 详细

i++与++i的误解

时间:2016-03-04 01:53:50      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:

javap -c xx.class

{
i=0
i=i++
}
0: bipush 0
2: istore_1 stack ->var1
3: iload_1 var1->stack
4: iinc 1, 1 //var1 =var1+1
7: istore_1 stack ->var1 //var1 被覆盖 值不变
8: return
{
i=0
i=++i
}
0: bipush 0
2: istore_1
3: iinc 1, 1 var1=var1+1
6: iload_1 var1->stack
7: istore_1 stack->var1
8: return

{
int i = 0; //var1
int j=0; //var2
j=i++;
}
0: iconst_0 i->stack
1: istore_1 stack->var1
2: iconst_0 j->stack
3: istore_2 stack->var2
4: iload_1 var1->statck
5: iinc 1, 1 var1=var1+1
8: istore_2 stack(var1 value)->var2
结果 i :1 j:0

结论:++在前后入stack ,++在后,先入stack ,如果只一个变量 先入栈 出栈时被覆盖

 

i++与++i的误解

标签:

原文地址:http://www.cnblogs.com/anjuncc/p/5240687.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!