java中 ++i 和 i++ 的区别,在for循环中又有什么不同

java中 ++i 和 i++ 的区别,在for循环中又有什么不同

  1. 普通运算中
	i++ :先赋值 后进行+1
	++i :先进行+1 后赋值
	------------------------
	int i = 0;
	i = i++;
	System.out.println(i);//结果为0
	------------------------
	int i = 0;
	i = ++1;
	System.out.println(i);//结果为1
	------------------------
	
  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
  1. 在for循环中
    两者的作用一致,因为循环体的逻辑为:
	 for (option1; option2; option3)
	 执行顺序为:
	 
		 option1;
		 option2;
		 循环体内容
		 option3;
		 
	因此两者运行结果相同
  1. ++i 比 i++ 的运行速度更快
	Java中 i++语句是需要一个临时变量(上文中的_temp)存储返回自增前的值
	而++i不需要。这样就导致使用i++时系统需要先申请一段内存空间,然后将值添加进去,
	最后不用了才去释放
	
	因此++i效率更高,执行速度更快
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值