Java初学之数据类型

Java初学之数据类型

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

整型

Java提供四种整型,具体如下:

类型 存储需求 取值范围
int 4字节 -2147483648 ~ 2147483647(正好超过20亿)
short 2字节 -32768 ~ 32767
long 8字节 -9223372036854775808 ~ 9223372036854775807
byte 1字节 -128 ~ 127
  • int最常用
  • byteshort类型主要用于特定的应用场合
  • 整型的范围与运行Java 代码的机器无关
  • 长整型数值有一个后缀L或者l(例如40000000L)
  • 十六进制数值有一个前缀0x或0X(例如0xCAFE)
  • 八进制有一个前缀0,例如010对应八进制的8,八进制表示法比较容易混淆,建议最好不用
  • 二进制有一个前缀0b或者0B(例如0b1001 就是十进制的9)
  • 从Java7开始,可以为数字字面量加下划线,如1_000_000或者0b1111_0100_0010_0100_0000

浮点型

Java提供两种浮点型

类型 存储需求 取值范围
float 4字节 大约 ±3.40282347E+38F (有效位数为6 ~ 7 位)
double 8字节 大约 ±1.79769313486231570E+308 (有效位数为15 位)
  • 绝大部分程序采用double类型

  • float类型的数值有一个后缀F或者f(例如,3.14F),没有后缀F的浮点数值(如3.14)默认为double类型,当然也可以在浮点数值后面添加D或者d(例如3.14D)

  • 可以使用十六进制表示浮点数,例如0.125=2-3可以表示为0x1.0p-3,具体原因见这里,浮点数如何转二进制?

  • 用于表示溢出和出错情况的三个特殊的浮点数值

    • 正无穷大,可用Double.POSITIVE_INFINITY表示

    • 负无穷大,可用Double.NEGATIVEJNFINITY表示

    • NaN(不是一个数字),可用Double.NaN表示

    • 例如一个正整数除以0的结果是正无穷大,计算0/0或者负数的平方根结果为NaN

    • 【注】:检测一个特定的值是否等于Double.NaN

      // 不能使用等于,所有“ 非数值” 的值都认为是不相同的。
      if (x = Double.NaN) // is never true
      // 可以采用以下方法
      if (Double.isNaN(x))    
      

char类型

占2个字节的字符型变量,智只能存放单个字符

Java采用的是Unicode编码方式,char是16位的,因此char在Java中占两个字节

char类型赋值

  • 字符

    // 使用单引号
    // 英文字母
    char a = 'k';
    // 汉字
    char a = '哈';
    

    输出结果为

    k

  • 整数

    可以是十进制,二进制,十六进制等

    // 十进制
    char a = 5;
    char a = 0b011111111;
    char a = 0x123
    

    输出结果为字符编码表中对应的字符

    5

    ÿ

    ģ

  • 字符的Unicode编码值

    char a = '\u0061'  // 结果为a,Unicode编码值0061对应的字符为a
    

char运算

  • char类型是可以运算的因为char在ASCII等字符编码表中有对应的数值。

  • 对char类型字符运行时,直接当做ASCII表对应的整数来对待。

  • 运算方式可以分为

    • char + char
  • char + int

      ```java
      int 'a' + 'b'; // 结果为195, a的ASCII值为97, b的ASCII值为98
      char 'a' + 1; // 结果为b // 首先获取a的ASCII值,然后加1,最后输出ASCII第98个位置对应字符
      ```
    

boolean类型

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

参考文章

posted @ 2022-02-10 21:43  zlbingo  阅读(49)  评论(0)    收藏  举报