1 规则
- 计算时,所有char、short、byte类型会转为int型。final修饰的变量不会自动转型,所以final修饰的byte不会自动转为int
- 有一个数是long/float/double,计算结果也是long/float/double。int+long是long,long+float是float,float+double是double。向上兼容。
- 若两个数都是final修饰,那么结果会根据左边变量类型转化
- += 操作会自动强转。
2 练手
这里面哪些语句编译错误?
3 解析
A. b1+b2,byte自动转为int,b3是byte,编译错误。
B. b4+b5, 都是final,不自动转型,结果还是byte,b6是byte,没错。
C. b1+b4, b1自动转int,b4 final不转,结果还是int,b8是byte,编译错误。
D. b2+b5,原理同上,编译错误。