自己做章网站,四川省建设厅燃气网站,网站 关键词 地区,做二维码推送网站i和i的区别
一、基本概念
两者的作用都是自增加1。 单独拿出来说的话#xff0c;i和i#xff0c;效果都是一样的#xff0c;就是ii1 public static void main(String[] args) {int i 0;i;System.out.println(i);}public static void main(String[] args) {int i 0;i;Sys…i和i的区别
一、基本概念
两者的作用都是自增加1。 单独拿出来说的话i和i效果都是一样的就是ii1 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的区别
单独使用的时候是没有区别的但是如果当成运算符就会有区别了如图所示我们用ai和ai举例说明 先说ai这个运算的意思是先把i的值赋予a然后在执行ii1 当i初始等于3时执行ai最终结果a3i4. 而ai这个的意思是先执行ii1然后在把i的值赋予a 当i初始等于3时执行ai最终结果a4i4. ai , a 返回原来的值ai,ii1; ai , a 返回加1后的值,ai1,ii1
i这是后缀递增运算符先将当前值赋给变量然后再递增。
i这是前缀递增运算符先递增变量的值然后再赋给变量。
也就是i是先赋值然后再自增i是先自增后赋值
三、i和i那个效率更高
我们写个for循环的小例子来做验证。将这两个类编译后的class通过字节码指令输出到txt中 可以看到main方法开始从上到下的字节码是完全一样的没任何不同。 所以i 和 i 的效率本质是一样高的。 i和i的效率几乎是相同的因为它们都只做一次增量操作。这两者之间的主要区别在于运算顺序。
在大多数情况下我们不会注意到这两种方式之间的性能差异。选择使用哪种方式主要取决于你在代码中需要哪种类型的增量操作。但如果我们真要针对性能进行讨论在某些编程语言如C/C中,由于编译器优化等因素,有时候使用前缀递增(i)可能会略微快一点, 因为它不需要保留旧值。但是在java中, 这个差异几乎可以忽略不计. 译器优化等因素,有时候使用前缀递增(i)可能会略微快一点, 因为它不需要保留旧值。但是在java中, 这个差异几乎可以忽略不计. 总结来说, 在java中选择使用哪种形式应更多地基于代码可读性和正确性考虑, 而非执行效率.