i++和++i的区别
一、基本概念
public static void main(String[] args) {
int i = 0; i++; System.out.println(i); }
public static void main(String[] args) {
int i = 0; ++i; System.out.println(i); }
二、++i和i++的区别
单独使用的时候是没有区别的,但是如果当成运算符,就会有区别了!如图所示,我们用a=i++和a=++i举例说明
- 先说a=i++,这个运算的意思是先把i的值赋予a,然后在执行i=i+1;
当i初始等于3时,执行a=i++,最终结果a=3,i=4.
- 而a=++i,这个的意思是先执行i=i+1,然后在把i的值赋予a;
当i初始等于3时,执行a=++i,最终结果a=4,i=4.
i++:这是后缀递增运算符,先将当前值赋给变量,然后再递增。
++i:这是前缀递增运算符,先递增变量的值,然后再赋给变量。
也就是i++是先赋值,然后再自增;++i是先自增,后赋值
三、i++和++i那个效率更高
我们写个for循环的小例子来做验证。将这两个类编译后的class通过字节码指令输出到txt中
可以看到,main方法开始,从上到下的字节码是完全一样的,没任何不同。
所以,i++ 和 ++i 的效率本质是一样高的。
i++和++i的效率几乎是相同的,因为它们都只做一次增量操作。这两者之间的主要区别在于运算顺序。
在大多数情况下,我们不会注意到这两种方式之间的性能差异。选择使用哪种方式主要取决于你在代码中需要哪种类型的增量操作。但如果我们真要针对性能进行讨论,在某些编程语言(如C/C++)中,由于编译器优化等因素,有时候使用前缀递增(++i)可能会略微快一点, 因为它不需要保留旧值。但是在java中, 这个差异几乎可以忽略不计.
译器优化等因素,有时候使用前缀递增(++i)可能会略微快一点, 因为它不需要保留旧值。但是在java中, 这个差异几乎可以忽略不计.
总结来说, 在java中选择使用哪种形式应更多地基于代码可读性和正确性考虑, 而非执行效率.
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/103243.html