基本数据类型之间的运算
相同数据类型之间
相同数据类型之间计算, 得到的一定是这个数据类型
int + int = int
不同数据类型之间
首先, 把小的数据类型自动转换成大的数据类型, 然后再进行计算, 得到的结果一定是大的数据类型.
int + long = long
特殊的byte, short, char
在计算的时候,首先会转化成int类型然后再进行计算. 这样是安全的.
byte + byte = int
结果至少是int
结论:
在执行算数运算的时候. byte, short 会自动的转化成int然后再进行计算.
如果不同数据类型之间进行计算. 比如int+long. 此时, 程序会自动的把int转化成long. 然后再进行计算. 所以结果一定是大的数据类型
恶心人的题:
short s1 = 1; short s2 = s1 + 1; System.out.println(s2);
解析: 此时第2行代码一定会报错. 因为s1是short类型. 而short类型计算的时候会自动转换成int进行计算. 并且. 所有的数字. 默认都可以看做是int类型. 默认的小数都可以看做是double类型. 所以第二行计算的结果应该是int类型. 把int类型的数据赋值给short类型的变量. 一定会报错的. 此处必须要进行强制类型转换
short s1 = 1; short s2 = (short) (s1 + 1); System.out.println(s2);