小类型向大类型转换
自动转换的规则:符号位会自动扩展,负数补1,正数补0
自动转换类型包含以下几种情况:
- byte->short->int->long->float->double
- int和char类型的数据在某些情况下可以自动相互转换
/*Int类型转换为float类型精度丢失案例*/
int i = 0x1000001;//28位int
float f = i;//float最多能保存到23位,会丢失最后一位,但并不会报错
类似的,还有long类型转换为double类型精度丢失等等
大类型向小类型转换
/*强制类型转换-强转*/
byte b = 5;
b = (byte)(b+10);//10默认是int类型,需要强制类型转换,否则编译错误
b = 10+5;//无需类型转换
int和char转换
char c = 65;
int i = 'B';
System.out.println(c + "," + i);//A,66
i = c + 1;
c = (char)(c + 1);
System.out.println(c + "," + i);//B,66