1. 数据类型及转换(隐式转换)

1-1 数据类型及转换

1.隐式转换: 将数据类型中, 取值范围小的数据, 给取值范围大的类型赋值, 可以直接赋值。
示例:
int a = 10;
double b = a;
诀窍: 小的给大的,可以直接给。
byte 1字节
int 4字节
double 8字节
4升的油,倒入8升的桶,可以直接倒入。

image.png

特殊关注: byte short char 三种数据在运算的时候, 不管是否有更高的数据类型, 都会被提升为Int,然后再进行运算。

2.强制转换
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
格式: 目标数据类型变量名 = (目标数据类型)值或者变量。

注意: 强制类型转换, 有可能会发生精度损失.
精度损失: 简单理解,讲容器为8升的容器中的水,倒入容积为4升的容器中,如果水超过了4升,就洒了。

3.类型转换案例
问题疑问: byte d = 3 + 4; 为什么不会出现错误?
因为3和4,是两个常量,Java中存在【常量优化机制】
常量优化机制: 在编译时(javac), 就会将3和4计算出一个7的结果, 并且会自动判断该结果是否在byte取值范围内。
在: 编译通过
不在: 编译失败

image.png

你可能感兴趣的:(1. 数据类型及转换(隐式转换))