class Caculate{
public static void main(String[] args){
int a = 3;
int b = 5;
int c = ++a; //当运算符在变量前面时,首先进行计算再赋值
int d = b--; //当运算符在变量后面时,首先赋值再进行计算
System.out.println(c);//4
System.out.println(d);//5
System.out.println(a);//4
System.out.println(b);//4
}
}
- 当运算符在变量前面时,首先进行计算再赋值
- 当运算符在变量后面时,首先赋值再进行计算
面试题:
short s = 1;
s=s+1;
System.out.println(s)
short s = 1;
s+=1;
System.out.println(s)
第一个有问题,因为s+1计算完之后是int类型,而定义的s是short类型,因此数据类型不一致。
第二个问题没有问题,在s+=1 时,存在强制类型转换 等价于:s = (short) (s+1),所以没有问题。
&和&&,|和||的区别?计算结果相同,但是&&具有短路效果,当前面为false时就不进行计算。|同理,当前面为true,后面的不进行计算。
所以在程序开发的时候,多用&&,||和!