Java基础语法之数据类型

Java是强类型语言,对于每一种数据都定义了具体的数据类型,在内存中分配了不同大小的内存空间。

Java基础语法之数据类型_第1张图片

1.整型

Java基础语法之数据类型_第2张图片
  • 整数默认int
  • 长整型数值有一个后缀 L / l
  • 十六进制数前面加 0X / 0x
  • 二进制数前面加 0b / 0B
  • 八进制数前面加 0 (容易混淆,不要用)
  • 可以为数字字面量加下划线,如1_000_000 (更易读,java编译器会移除他们)
  • Java没有任何无符号类型
  • 在Java中,所有的数值类型所占据的字节数与平台无关(P48)

2. 浮点数

Java基础语法之数据类型_第3张图片
  • float有效位数6~7位,数值后面加 F/ f ,没有加的默认为double
  • double有效位数15位,可以加后缀 D / d
  • 可以使用16进制表示浮点数,0.125可以表示成0x1.0p-3。
  • 三个特殊的浮点数值:
    • 正无穷大 Double.POSITIVY_INFINITY (如正整数 / 0 )
    • 负无穷大 Double.NEGATIVY_INFINITY (0/0或者负数的平方根)
    • NaN Double.NaN
      • 注意x==Double.NaN是错误的,因为所有非数值的值都认为是不同的,但可以使用Double.isNaN(x)
    • 警告:命令System.out.println(2.0-1.0)将打印出0.899999999999999,而不是0.9。其主要原因是浮点数之采用二进制表示,而在二进制中无法精确表示1/10,如果需要在数值计算中不含任何舍入误差,应该使用BigDecimal类。

3.char类型

  • char占两个字节
  • Java语言采用的是Unicode编码。
    思考题 :Java语言中的字符char可以存储一个中文汉字吗?
    可以,因为Java语言中的字符占两个字节,一个中文汉字占两个字节。

4.boolean类型

  • boolean有两个值,true和false
    注意:整型值和布尔值之间不能进行相互转换。

你可能感兴趣的:(Java基础语法之数据类型)