
- 普通运算中
i++ :先赋值 后进行+1
++i :先进行+1 后赋值
------------------------
int i = 0;
i = i++;
System.out.println(i);//结果为0
------------------------
int i = 0;
i = ++1;
System.out.println(i);//结果为1
------------------------
- i++ 的底层实现
int i = 0:
------------------
_temp = i;//0
i = i + 1;//1
return _temp;//0
-------------------
所以在运行
i = i++; 时
相当于i = _temp;将内存中i = i + 1;//1;进行了覆盖
最终i = i++ 的值还是0;
- 在for循环中
两者的作用一致,因为循环体的逻辑为:
for (option1; option2; option3)
执行顺序为:
option1;
option2;
循环体内容
option3;
因此两者运行结果相同
- ++i 比 i++ 的运行速度更快
Java中 i++语句是需要一个临时变量(上文中的_temp)存储返回自增前的值
而++i不需要。这样就导致使用i++时系统需要先申请一段内存空间,然后将值添加进去,
最后不用了才去释放
因此++i效率更高,执行速度更快
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)