自动类型转换:容量小的数据类型自动转换成容量大的数据类型。
char
int long float double
byte short
一字节是8位,一字是2字节。
有多种类型的数据计算时。系统会将所有的数据类型转换成最大的数据然后进行计算。
byte short char之间不会自动转换,他们三者计算会首先转换成int在进行计算。
当把任何基本类型的数据和自负类型的数据进行链接运算(+),得到的是字符类型的数据。
1)short s = 5;
s = s-2; //判断:no 因为2是int类型的,s-2会先转换成大数据类型int进行计算,然后得到的是一个int类型的结果,并不能直接转换成short。下main的几个一样。
2) byte b = 3;
b = b + 4; //判断:no
b = (byte)(b+4); //判断:yes
3)char c = ‘a’;
int i = 5;
double d = .314;
double result = c+i+d; //判断:yes
4) byte b = 5;
short s = 3;
short t = s + b; //判断:no 因为short char byte并不会相互转换,他们运算会先转换成int。得到一个int结果,并不能自动转换成short的数据。
原文:http://www.cnblogs.com/cyfly/p/4541292.html