Java基础-Java的基本数据类型

  • 四种整型

    • 整形的最高位是符号位,0代表正数,1代表负数

    • 由正整数,负整数,0组成

    • 为解决减法问题引入反码,为解决反码引起的正负0问题引入补码

    • 负数在计算机中以补码保存

    • 正数的反码和原码相同,负数的反码等于原码的符号位不变,其余各位按位取反

      • 正数的补码和原码相同,负数的补码等于其反码加1
    • byte

      • 大小:8位(1字节)
      • 最大值:127
      • 最小值:-128
    • short

      • 大小:16位(2字节)
      • 最大值:32767
      • 最小值:-32768
    • int

      • 大小:32位(4字节)
      • 最大值:2147483647
      • 最小值:-2147483648
    • long

      • 大小:64位(8字节)
      • 最大值:9223372036854775807
      • 最小值:-9223372036854775808
  • 两种浮点型

    • 浮点型的最高位是符号位,0代表正数,1代表负数

    • 十进制的小数在转换成二进制时可能存在无限循环的问题,因此浮点数存在精度丢失的问题

    • 解决浮点数精度问题使用BigDecimal类

      样例:

      public static void main(String[] args) {
              BigDecimal b1 = new BigDecimal(Float.toString(1.2f));
              BigDecimal b2 = new BigDecimal(Float.toString(1.0f));
              float s = b1.subtract(b2).floatValue();
              System.out.println(s);
          }
      
    • float:32位单精度浮点数

      • 大小:32位(4字节)

      • 最高位表示符号位,符号位之后8位表示阶位,最后23为表示数值位

    • double:64位双精度浮点数

      • 大小:64位(8字节)

      • 最高位表示符号位,符号位之后11位表示阶位,最后52位表示数值位

  • 一种字符型

    • char

      • 大小:16位(2字节)

      • 存储一个Unicode字符

      • 转义字符

        • \"代表一个双引号
        • \'代表一个单引号
        • \\代表一个单斜杠
        • \n代表回车
        • \r代表换行
      • 通常很少使用char类型,一般使用String类型

      • String不是基本数据类型

      • String是char类型的数组

  • 一种布尔型

    • boolean

      • 数值型和布尔型是不能相互转换的

      • 只有两种取值:true和false

  • 数值类型之间的转换

    • 较小的数值类型可以自动转换成范围较大的数值类型

      • byte -> short -> int -> long

      • char -> int

      • int -> double

      • 自动转换不会损失精度

    • 较大的数值类型需要强制转换到较小数值类型

      • byte <- short <- int <- long
      • int -> float
      • long -> double
      • 数值之间强制类型转换可能会造成精度丢失
posted @ 2020-12-17 22:25  00321001  阅读(62)  评论(0)    收藏  举报