1.自动转换
public static void main(String[] args){
int a = 1;
byte b = 2;
//报错
// byte x = a + b;
//byte + int -> int + int = int
int y = a + b;//正确
System.out,println(y);
}
public static void main(String[] args){
byte a = 1;
short b = 2;
//byte + short -> int + int = int
// short x = a + b;//报错
//byte + int -> int + int = int
int y = a + b;//正确
System.out,println(y);
}
总结:
1.byte,short,char类型运算时,先提升为int类型,在进行运算
2.小类型 + 大类型 = 大类型(例: short + double = double)
3.byte、short、char‐‐>int‐‐>long‐‐>float‐‐>double(由小到大)
2.强制转换
int a = 1.5//报错
总结:不能把"较大数据类型"的数赋值给"较小数据类型的变量"
解决方法:
int a = (int)1.5;//把右边浮点型数1.5强制转换为(int)类型,然后再赋值给a
练习
public static void main(String[] args){
byte a = 1;
// byte + int(1) -> int + int = int
// a = a + 1;//报错
// byte + int(1) -> int + int = int
a = (byet)(a + 1);//强制类型转换
System.out,println(a);
}
注意:
强制类型转换可能会造成精度损失,如:把1.5强制转换为int类型,结果为1
3.ASCII编码表
练习
public static void main(String[] args){
char c = 'a';
int i = 1;
// char + int -> int + int = int
System.out,println(c + i);//98
}