Java中共有8种基本类型,其中有 4 种整型、2 种浮点类型、1 种字符类型和1种用于表示真值的boolean类型
- 整数类型
- int
- short
- long
- byte
- 浮点类型
- float
- double
- 字符类型
- char
- 布尔类型
- byte和short类型用于特定的应用场合,例如,底层的文件处理或者存储空间很宝贵时的大数组
- 数字字面量可以加下划线让人易读,如1_000_000(或0b1111_0100_0010)编译时会去除下划线
浮点类型
类型 | 存储需求 | 取值范围 |
---|---|---|
float | 4字节 | 大约±3.402 823 47E+38F(有效位数为6~7位) |
double | 8字节 | 大约±1.797 693 134 862 315 70E+308(有效位数为15位) |
- 浮点数值不适用于无法接受舍入误差的金融计算,例如System.out.println(2.0-1.1)将打印出0.8999999999999999,此时应该使用BigDecimal类
- 没有后缀f的浮点数(如3.14)默认为double类型
char类型
原用于表示单个字符,现在有些Unicode字符可以用一个char值描述,一些Unicode需要两个char值
转义序列 | \b | \t | \n | \r | \“ | \‘ | \\ |
---|---|---|---|---|---|---|---|
名称 | 退格 | 制表 | 换行 | 回车 | 双引号 | 单引号 | 反斜杠 |
Unicode值 | \u0008 | \u0009 | \u00a | \u00d | \u0022 | \u0027 | \u005c |
- 不建议在程序中使用char类型,除非确实需要处理UTF-16代码单元
- 转义序列\u可以出现在加引号的字符串外,例如
main(String \u005B\u005D args)
就等于main(String[] args)
- 字符串
\u0022+\u0022
会转换为""+""
,是一个空串// \u000a is a newline
会产生一个语法错误,因为读程序时\u00a0
会替换为一个换行符- 与上面类似,
//C:\users
也会产生错误,因为\u
后面并没有跟着4个16进制数
boolean类型
Boolean(布尔)类型有两个值:false和true,用于判定逻辑条件。整型值和布尔值之间不能进行相互转换。