转换的规则为:从低精度向高精度转换
byte(一个字节) <short(2)< char(2) < int(4) <long(8) < float(4) < double(8)
注意:基本数据类型和boolean类型不能相互转换
java在涉及byte and char 类型的运算是,先把这些类型的变量值强制转化为int类型,然后在对int类型的值进行计算,最后得到的值也是int类型的
如果想得到short类的值,需要显示的转换为short类型
例如:
short s1 = 1;
s1 = s1+1;//这句话编译出错,原因:编译器先将s1装换为int类型,因此s1+1的值为int类型
所以需要强制转换,如下:
short s1 = 1;
s1 = (short) (s1+1);
但是:
short s1 = 1;
s1+=1;//编译正常进行,因为s+=1等价于s= (s的类型)(s+1)