Java是一种强类型的语言,这意味着必须为每一个变量声明一种类型。在java中,一共有8种基本类型,其中4种整型、2种浮点型、1种用于表示Unicode编码的字符单元的字符类型char和一种用于表示真值的boolean类型。
整型
类型 | 存储需求 | 取值范围 |
int | 4字节 | -2147483648~2147483647 |
short | 2字节 | -32768~32767 |
long | 8字节 | -9223372036854775808~9223372036854775807 |
byte | 1字节 | -128~127 |
浮点型
类型 | 存储需求 | 取值范围 |
float | 4字节 | 大约±3.40282347E+38F(有效位数为6~7位) |
double | 8字节 | 大约±1.79769313486231570E+308(有效位数为15位) |
用于表示溢出和出错情况的三个特殊的浮点数值:1、正无穷大;2、负无穷大;3、NaN 。
检测一个特定值是否等于Double.NaN可以这样:Double.isNaN(x) 。
在java中,2.0-1.1得到的结果将会是0.8999999999999999而不是0.9,其原因主要是浮点数值采用二进制系统表示,而在二进制系统中无法精确的表示分数1/10,就好像十进制无法精确的表示1/3一样。如果需要在数值计算中不含有任何舍入误差,就应该使用BigDecimal类。