美文网首页
Java基础之基本数据类型

Java基础之基本数据类型

作者: 回忆是一本书 | 来源:发表于2018-03-15 13:38 被阅读0次
    • 概念

    Java是一种强语言类型,意味着必须为每个变量声明一个类型,在Java中一共有8种基本类型(primitive type),4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。

    基本类型图.png
    • 整型

      整型用于表示没有小数部分的数值,允许负数。

    类型 大小(字节) 范围
    byte 1 -128 ~ 127(-2^7 ~ 2^7-1)
    short 2 -2^15 ~ 2^15-1
    int 4 -2^31 ~ 2^31-1
    long 8 -2^63~ 2^63-1

    从byte--short--int--long,以byte为基准,范围为2^7 ~ 27-1,short是215次方,与byte指数等级相差8。继续往下int与short指数等级相差16,long与int指数等级相差32。

    也就是说,以byte的范围2^7为基准线,往上到short,int,long,指数之差分别对应的是23,24,2^5.(方便记忆)

    题外话:Java之所以可以跨平台的其中一个因素,就是因为Java中所有数值类型所占据的字节量与平台无关,与处理器也无关,字节大小是固定的。

    • 浮点类型

      表示有小数部分的数值

      类型 大小(字节)
      float 4
      double 8

      没有写范围的原因是实际开发中,很少会关注浮点类型数据的溢出,基本不可能。

      double表示数值精度是float的两倍,所以double也称为双精度数值。绝大部分程序书写都是采用double类型。

      float类型数值会有后缀F,如2.22F,如果没有,默认为double类型。

      题外话: 浮点禁止在四合五入的计算中出现,比如2.0-1.1,将打印出0.899999999999,而不是你想象的0.9。原因在于浮点数值采用二进制系统表示,二进制系统中无法表示分数9/10,就像十进制无法精确表示1/3一样。这种情况下,应该用BigDecimal类(后续更新关于BigDecimal的内容)。

    • 字符类型

      char用表示单个字符。'A'"A"是不同的概念,前者表示编码为65的字符常量,后者是一个包含字符A的字符串。

      char类型不建议在程序中使用,就算是String有些操作需要转换为字符类型操作,但也希望首先考虑抽象数据类型表示。

    • 布尔类型

      boolean就包含:false和true,一般用作判断逻辑条件。另外,整型值和布尔值之间不能进行相互转换。

    • 结束语

      另外抛出一个问题:为什么Java有了基本类型之后,还会需要有各类型的包装类?

      第一次尝试些文章,逻辑文笔不好的地方请见谅。

    相关文章

      网友评论

          本文标题:Java基础之基本数据类型

          本文链接:https://www.haomeiwen.com/subject/okztixtx.html