类型转换
类型转换
》自动类型转换 (自动类型提升)
int num4 = 4;
double num5 = num4;
-----------------
int num6 = 6;
double num7 = 3.0;
double num8 = num6 / num7;
》小范围的数据往大范围的数据转换时,可以自动转换,还需要保证类型兼容(数值类型:整型和浮点型,互相兼容)
》如果一个表达式中有一个操作数是double,那么整个结果都将提升为double
》强制类型转换
》当大范围转向小范围时,比如浮点型转换为整型时
double num4 = 4.0;
int num5 = (int)num4;
》+=具有强制类型转换效果
num += 10;
byte num2 =126+4; //编译失败,两常量相加,判断相加后结果是否在byte范围内
byte num3 =126;num3+=4; //编译正确但运行结果有问题
》整型 byte short char
》这三种数据类型在进行各种计算时,结果都会变成一个int值
byte b1 = 1;
int b2 = b1 + b1;
--------------
char c1 = 'a';
int c2 = c1 + 1;
》除非它们自加自减
byte b3 = b1 ++;
》char->int:根据ascii码表进行提升
char ch = 'a';
int num2 = ch;
System.out.println(num2);//97
a:97 A:65
》short->int
short num1 = 19; num1 = num1 + 10; //编译失败,因为short+int,最终结果为int型,不能赋给short型的num1