Java基础之基本数据类型

  • 概念

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

Java基础之基本数据类型_第1张图片
基本类型图.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基础之基本数据类型)