1、算数运算中的坑
在编译器进行代码编译的时候,针对byte和short类型会检查数据是否超范围,
针对直接的常量是可以 检查范围,但是针对变量,在编译的时候只能知道是变
量,而不能确定变量空间未来在运行时存储的具 体的数据。
在byte d = a+ b; 无法确定a + b 最终的一个结构
char c = 'B';
c = c + 32;//会报类型转换的错误,与上面道理一致
//可如此解决
c += 32; or c = (char)(c + 32);
2、自加和自减
在自加和自减参加的混合运算中(除自加和自减外还有别的运算),需要考虑自加和自减优先级。
自加和自减:最终的结果是给某个变量中+1或-1。
自加和自减运算规律:
- 如果++或–在变量的右侧,会将++或–左侧变量空间中的数据临时保存,然后给++或–左侧变量空 间中+1或-1,这时表示++或–运算结束,然后将临时空间中的数据再参与其他运算。
- 如果++或–在变量的左侧,直接给++或–对应的变量+1或-1,然后将运算后的变量参与别的运算。
- 如果在一个运算中只有++或–,不考虑上述的规律,直接+1或-1
1、int n = 3;
n = n++;//输出n = 3;
2、int j = 3;
j = ++j;//输出j = 4;
3、int n = 3
System.out.println("n = "+ n++ );//输出 n = 3,之后n才做+1运算。