/*研究java中的基本数据之间的转化问题*/
public class QiangZhiZhuanHuan {
public static void main(String[] args){
byte a = 10; //10默认是int型,这里系统将10强制转换成byte型,并进行赋值
// byte b =128; 这条语句会出错,原因是byte型的存储范围是-128~127,128超出了范围,系统会报错
byte b =(byte)128; //如果将128强制转换成byte型
System.out.println(b);//则输出结果是-128。因为128默认是整型(占4个字节),强制转换成byte型(占1个字节)会舍弃高位
//导致其丢失精度。就好比要装的东西大,而箱子小,所以要切掉物体的一部分才能装进箱子里。
char c = 65; //65默认是整型,这里系统将65强制转换成char型
System.out.println(c);//输出字符A
// char d = 65536; //这条语句会出错,原因是65536超出了char的储存范围
int e = 'a'+0; //当两个不同的数据类型之间经行加减运算时,范围低的会提升自己的等级,这里字符型a与整型0进行相加运算时
System.out.println(e); //字符型a被强制转换成整型,输出结果为97
}
}
默认转换顺序:
byte,short,char-int-long-float-double
byte,short,char之间不能相互转换