获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
#每天一个知识点# 你知道i++和++i有区别吗?
当使用i++运算时,以下操作会被执行:
先将变量i的当前值(即未进行自增运算前的值)保存到一个临时变量中;
对变量i进行加1操作;
将保存在临时变量中的值返回给程序。
这个过程中,与i++自增运算相关联的是“赋值表达式”和“方法调用”。当编译器遇到i++运算时,它实际上会将其转换为类似如下的表达式:
java
int temp = i;
i = i + 1;
return temp;
因此,尽管i++运算看起来很简单,但实际上它涉及到了比较复杂的内部机制,这也导致了它的执行效率相对比较低。如果要求代码的性能,建议优先使用前缀自增运算符(++i)。
当使用i++运算时,以下操作会被执行:
先将变量i的当前值(即未进行自增运算前的值)保存到一个临时变量中;
对变量i进行加1操作;
将保存在临时变量中的值返回给程序。
这个过程中,与i++自增运算相关联的是“赋值表达式”和“方法调用”。当编译器遇到i++运算时,它实际上会将其转换为类似如下的表达式:
java
int temp = i;
i = i + 1;
return temp;
因此,尽管i++运算看起来很简单,但实际上它涉及到了比较复杂的内部机制,这也导致了它的执行效率相对比较低。如果要求代码的性能,建议优先使用前缀自增运算符(++i)。
展开
评论
2
赞了这篇沸点
赞了这篇沸点
赞了这篇文章
赞了这篇文章
,每一个赞都是我的动力呀。![[调皮]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_13.aaa8265.png)
![[呲牙]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_2.cd1e2bd.png)
![[流泪]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_6.dde0d83.png)
![[捂脸]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_28.8981538.png)