如果文章对你有所帮助,请点喜欢并关注,这将是我最大的动力,谢谢
首先要明确各个数据类型的“大小”,如图所示
不需要背,只要知道各个类型孰大孰小就够了。
数据之间类型的转换是有规则的
要知道java是强类型的,每个变量必须对应一个类型。而每个类型都有一个容量的大小,因此,不同类型之间,有些情况是无法正常转换的
但如果满足以下条件,则可以转换,称为自动类型转换
1)目标类型能与源类型兼容的,比如double能兼容int,但char不能兼容int;
2)目标类型的字节数大于源类型的,如long能兼容int,但int就不能反过来兼容long。
强制类型转换
在某些情况下,自动类型转换无法满足需求时,可以使用强制类型转换进行强制转换,但转换结果仍需符合该数据类型,如图
运算符两边的数据类型会影响计算结果
- 两边如果为同一类型,则结果为同一类型
-
两边如果有一个有小数,则结果带有小数
计算机里浮点数是没有办法保证完全正确的
如图所示
为什么会这样?
因为计算机在计算浮点数值时采用二进制计系统表示,而在二进制系统中无法精确表示分数1/10。这就像我们用十进制无法得出10÷3的精确结果一样。
that's all