算数运算符优先级
这里学习和总结一下算数运算符优先级问题,这里给出一张图,网上也有很多,这里重要的是理解i++和++i的区别
i++和++i区别
- i++先赋值后运算
- ++i先运算后赋值
int a=1;
int b=a++ +1;
System.out.println(a);
System.out.println(b);
结果:-------------------
2
2
使用idea打开它生成的class文件可以看出原理
int a = 1;
byte var10000 = a;
int a = a + 1;
int b = var10000 + 1;
System.out.println(a);
System.out.println(b);
可以清楚的看到i++使用的是一个中间缓存变量,和网上大部分网友说明的一致,因此需要明白的是当有i++时候有一个中间缓存的变量,当执行i=i+1后再讲缓存中的值复制到原来的表达式中
这里附上一篇很好的解析深入理解Java中的i++、++i语句