Re:Java自增自减解析
一,i++和++i的区别
i++和++i都相当于i = i + 1,主要区别在于将其值赋值给其他变量时:
int i = 1
int j = i ++ 结果为 j = 1,i = 2。i会先指派j的值,然后再执行i自增操作
int j = ++ i 结果为 j = 2,i = 2。先执行i自增操作,再将i的值赋值给j
二,实例演示
public class AutoIncrease { public static void main(String[] args) { int i = 1; i = i++; int j = i++; int k = i + ++i * i++; System.out.println("i="+i); System.out.println("j="+j); System.out.println("k="+k); } } //运行结果为: i=4, j=1, k=11
三,小结
1,赋值=,最后计算
2,=右边的从左到右加载值依次压入操作数栈
3,实际先算哪个,看运算符优先级
4,自增,自减操作都是直接修改变量的值,不经过操作数栈
5,最后的赋值之前,临时结果也是存储在操作数栈中
四,补充,java运算优先级
算术运算符>比较运算符>赋值运算符>逻辑运算符>三元运算符
单目:单目运算符+ –(负数) ++ – 等
乘除:算数单目运算符* / % + -
位运算:位移单目运算符<< >>
关系运算:关系单目运算符> < >= <= == !=
逻辑:逻辑单目运算符&& || & | ^
三目:三目单目运算符A > B ? X : Y
赋值:赋值=