Java有8种基本数据类型,其中4种整数类型、2种浮点类型、一种表述Unicode编码的字符类型、一种表示真假的布尔类型。
Java整数类型
| 类型 | 存储大小 | 取值范围 |
|---|---|---|
| byte | 1字节 | -128~127 |
| short | 2字节 | -32768~32767 |
| int | 4字节 | -2 147 483 648~2 147 483 647 |
| long | 8字节 | -9 223 372 036 854 775 808~9 223 372 036 854 775 807 |
注意,Java没有任何无符号(unsigned)形式的byte、short、int、long类型。
Java浮点类型
| 类型 | 存储大小 | 取值范围 |
|---|---|---|
| float | 4字节 | +_3.402 823 47 E+38F,有效位数6~7位 |
| double | 8字节 | +_1.797 693 134 862 315 70E+308,有效位数15位 |
注意,float类型的数值有一个后缀F或f,没有后缀的浮点数值默认为double类型。
三个特殊的浮点数值
- 正无穷大,Double.POSITIVE_INFINITY
- 负无穷大,Double.NEGATIVE_INFINITY
- NaN(不是数字),Double.NaN
比如,一个正整数除以0的结果为正无穷大,负数的平方根结果为NaN。
不能检测一个值是否为NaN,要使用方法Double.isNaN()。
Java字符类型
char类型的字面量值要用单引号括起来,如’A’;它和”A”不同,”A”表示包含一个字符A的字符串。
char类型的值可以表示为十六进制值,其范围从\u0000~\uFFFF。
特殊的转义字符
| 转义序列 | 描述 | Unicode值 |
|---|---|---|
| \b | 退格符 | \u0008 |
| \t | 制表符 | \u0009 |
| \n | 换行符 | \u000a |
| \r | 回车符 | \u000d |
| \” | 双引号 | \u0022 |
| \’ | 单引号 | \u0027 |
| \\ | 反斜杠 | \u005c |
码点是指与一个编码表中的某个字符对应的代码值。Unicode标准,码点采用十六进制书写,加上前缀U+。
Unicode码点可以分成17个代码级别,第一个代码级别称为基本多语言级别,码点从U+0000~U+FFFF;其余的16个级别码点从U+10000~U+10FFFF。
UTF-16编码采用不同长度的编码表示所有Unicode码点。基本多语言级别中,每个字符用16位表示,16位被称为一个代码单元。其余的16个代码级别采用一对连续的代码单元进行编码,其编码值落入基本多语言级别中空闲的2048字节内,通常被称为替代区域。U+8D00~U+DBFF用于第一个代码单元,U+DC00~U+DFFF用于第二个代码单元。
Java中char类型描述了UTF-16编码的一个代码单元。
Java布尔类型
boolean类型有两个值false和true,用来判定逻辑条件。
注意:整数值和布尔值之间不能进行相互转换。


