Java基础第二天拓展——栈(面试题)
a = 1;
a = a++ + ++a;
解析:
使用关键词:局部变量栈、操作数栈、符号栈。
1.a=1压入局部变量栈底层
2.a++则为1+1=2,压入操作数栈底层为2
3.++a处由于a=1,所以依旧为1+1=2,并将这个2压入操作数栈上一层
4.+加号压入符号栈,由于++为自加不属于运算符,所以不压入符号栈
5.所以得出结论:操作数栈中从上到下为2——2,符号栈中从上到下只有一个+,所以2+2=4
以下代码测试结果:
a = 1;
a = a++ + ++a;
解析:
使用关键词:局部变量栈、操作数栈、符号栈。
1.a=1压入局部变量栈底层
2.a++则为1+1=2,压入操作数栈底层为2
3.++a处由于a=1,所以依旧为1+1=2,并将这个2压入操作数栈上一层
4.+加号压入符号栈,由于++为自加不属于运算符,所以不压入符号栈
5.所以得出结论:操作数栈中从上到下为2——2,符号栈中从上到下只有一个+,所以2+2=4
以下代码测试结果: