Java中共有8种基本类型,其中有 4 种整型、2 种浮点类型、1 种字符类型和1种用于表示真值的boolean类型

  • 整数类型
    • int
    • short
    • long
    • byte
  • 浮点类型
    • float
    • double
  • 字符类型
    • char
  • 布尔类型
    • boolean

      整型

      | 类型 | 存储需求 | 取值范围 | | —- | —- | —- | | int | 4字节 | -2_147_483_648 ~ 2 147 483 647(刚好超过20亿) | | short | 2字节 | -32768 ~ 32767 | | long | 8字节 | -9_223_372_036_854_775_808 ~ 9_223_372_036_854_775_807 | | byte | 1字节 | -128 ~ 127 |
  • 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,用于判定逻辑条件。整型值和布尔值之间不能进行相互转换。