Java基础之基本数据类型

  • 概念
Java是一种强语言类型,意味着必须为每个变量声明一个类型,在Java中一共有8种基本类型(primitive type),4种整型,2种浮点类型,1种用于表示Unicode编码的字符单元的字符类型char和1种用于表示真值的boolean类型。
Java基础之基本数据类型
文章图片
基本类型图.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基础之基本数据类型】第一次尝试些文章,逻辑文笔不好的地方请见谅。

    推荐阅读