数据类型的转换
自动类型转换/隐式转换
byte b = 3;
int i = b;
int i = 7;
long l = i;
规律一:小的类型可以转换为大的类型
long L =1.0;--------java中整数默认为int,所以1.0就是int类型,int可以自动提升为long类型-----如果一个整数在int范围内,那么在赋值给long类型的时候可以不加L
int i =1.0;
float f = i;
规律二:整数可以自动转化为小数,但是可能产生精度损失
float f=500;
char c =’a';
int i=c;
规律三:字符可以自动转化为整数
short类型和char类型范围没有完全重合也不能完全包含
short s =‘a’;------可以-------’a‘是字面量,是一个确定的值,所以在编译的过程中可以确定’a'的值是否在short的取值范围内;如果在这个范围内,就可以转化
char c =97;-------可以----------97是字面量,是一个确定的值,所以在编译的过程中可以确定97的值是否在char的取值范围内;如果在这个范围内,也可以转化
char c =‘a';
short s = c;-----不可以------c是变量,所以在编译期间只能确定c是一个char类型的值但是不能确定c的具体值;就会在编译期间比对两个类型之间是否能够完全转化,发现char不能完全转化为short,所以认为这个值会超过short范围取值的风险,因此不能转化