Java基本数据类型
数字
整数
Integer / int
- 32位有符号整数,具体范围是:-231 (-2147483648) ~ 231 -1 (2147483647)
- 大致范围:正负2*109 不用管溢出,1010 不行
- Integer接受null, int不接受
- Integer需要是用equals判断相等(直接用==会判断是否是同一个对象,而非是否数值相等),但>=与<=可以可以正常使用
- Integer.parseInt返回int,Integer.valueOf返回Integer
Long / long
- 64位有符号整数,具体范围是 -263 (-9223372036854775808) ~ 263 -1 (9223372036854775807)
- 大致范围:-9*1018 ~ 9*1018
- 默认值是0L
Byte / byte
- 8位有符号整数,具体范围是 -128 ~ 127
Short / short
- 16位有符号整数,具体范围是-32768 ~ 32767
小数
Float / float
- 有符号32位IEEE754标准的浮点数
- 符号位(s):1,指数位(E):8,尾数位(M):23
- 值为 (-1)S * 2E-127 * (1.M)
- 取值范围:负无穷, -2128 ~ -2-149 ,0,2-149 ~ 2128 ,正无穷
- 范围不连序,无法表示非常接近0的数
- 精度有限,7~8位有效位(7准确,8大部分准确)
Double / double
- 有符号64位IEEE754标准的浮点数
- 符号位(s):1,指数位(E):11,尾数位(M):52
- 值为 (-1)S * 2E-1023 * (1.M)
- 区直单位:负无穷, -21024 ~ -2-1074 ,0,2-1074~ 21024 ,正无穷
- 精度有限,能保证15~16有效位
其它
Character / char
- 16位Unicode,范围是0~65535
- 最小 \u0000
- 最大 \uffff
Boolean / boolean
- true / false
- 使用Boolean(带null)的情况,需要在List, Set, Map等中使用时;或以null表示此值是未知的(如,未填写、还没有进行过判断)
Ref: