JAVA基础——数据类型
整形
类型 | 存储需求 | 取值范围 |
---|---|---|
int | 4字节 | -2 147 483 648 ~ 2 147 483 647(超过20亿) |
short | 2字节 | -32 768 ~ 32 767 |
long | 8字节 | -9 223 372 036 854 775 808 ~ 9 223 372 036 854 775 807 |
byte | 1字节 | -128 ~ 127 |
- Java中,整形的范围与运行Java代码的机器无关;
- 长整型数值有一个后缀L或l(如4000000000L);
- 十六进制数值有一个前缀0x或0X(如0xCAFE7);
- 八进制有一个前缀0,如010对应八进制中的8,容易混淆,不建议使用;
- Java7开始,加上前缀0b或0B可以写二进制(如0b1001);
- Java7开始,可以为数字字面量增加下划线(如1_000_000)增加易读性,Java编辑器会去除下划线。
浮点类型
类型 | 存储需求 | 精度 |
---|---|---|
float | 4字节 | 有效位数为6 ~ 7位 |
double | 8字节 | 有效位数为15位 |
-
表示溢出和出错情况的三个特殊的浮点数值:
- 正无穷大 Double.POSITIVE_INFINITY
- 负无穷大 Double.NEGATIVE_INFINITY
- NaN(不是一个数字)Double.NaN
-
检测值是否等于Double.NaN:
if(Double.isNaN(x)) //check wheter x in "not a number"
char类型
- char类型的字面量值用单引号括起来
- char类型的值可以表示为十六进制值,范围从/u0000到/Uffff
- /u是转义序列,Unicode转义序列会在解析代码之前得到处理。
boolean类型
- boolean类型有两个值:false和true;
- 整型值和布尔值之间不能进行相互转换