基本数据类型之间的运算规则.
除了
boolean
类型
自动类型提升
- 当容量小的数据类型与大的数据内型运算时,结果自动提升为大的数据类型
- byte、short 、char –> int –> long –> float –> double
- 特例:byte、short 、char三者间运算(包括自己和自己) 都转换为 int
- int = byte + short
- int = byte - char
- int = char * short
int = byte / byte
这里的容量指 能表示数的范围大小
不是 字节大小

- 强制类型转换:自动提升逆运算:容量大的 –> 容量小的
- 使用强转符 : ()
- int i = (int)1.4;// i = 1
- 可能会损失精度
- 符号有可能颠倒
- 使用强转符 : ()
补存.
1. long num = 12345;// 没有写L 没有报错 原因
整型字面量 默认类型是 int
int –> long 是自动提升的
2.long num = 12345678901;// 会 编译失败 原因
字面量范围超过了 int 的数据的范围
可以 使用 long num = 12345678901L;
3.float num = 1.3; // 会 编译失败 原因
浮点型字面量 默认类型是double
double –> float 需要强制转换
必须使用 float num = 1.3F;
或 float num = (float)1.3;
推荐使用
F
因为 前者是 先分配 float 大小的 内存去存 1.3
后者是 先分配 double大小的内存 存1.3 然后截取低 32位