Skip to main content

java数据类型

整数类型

  • 类型常量 十进制: 如 99, -500, 0 八进制: 要求以 0 开头, 如: 015 十六进制: 要求 0x 或 0X开头 , 如: 0x15 二进制: 要求0b或者 0b开头, 如: 0b11

  • 类型变量

    类型存储需求取值范围
    int4字节-2147483648 ~ 2147483647
    short2字节32768 ~ 32767
    long8字节-9223372036854775808 ~ 9223372036854775807
    byte1字节-128~127

浮点类型

  • 类型常量 十进制: 3.14 413.0 0.314 科学计数
  • 类型变量 float: 4字节, 有效位数(6 ~ 7 左右)
    double: 8字节, 有效位数(15 ~16 左右) 关于浮点数在机器中存放的形式:浮点数=符号位 + 指数位 + 尾数位 尾数部分可能丢失,造成精度损失
    double num11 = 2.7;
    double num12 = 8.1 / 3; // 2.7

    if(num11 == num12) {
    System.out.println('相等?')
    }

    if(Math.abs(num11 - num12) < 0.00001) {
    System.out.println('差值非常小,认为相等')
    }
    System.out.println(Math.abs(num11 - num12));

字符类型

  • Char: 2字节, 存放单个字符 'a';
  • Char 的本质是一个整数;
  • 存储: 'a' ==> 码值97 ==> 转二进制(110 0001)
  • 读取: 二进制(110 0001) ==> 97 ===> 'a' => 显示
char c1= 97;
System.out.println(c1); // a

char c2 = 'a';
System.out.println((int)c2); // 97

char c5 = 'b' + 1;
System.out.println((int)c5); // 99
System.out.println(c5); // 'c'

布尔类型

  • Boolean: 1字节 存放 true , false;

基本数据类型转换

  1. 自动类型转换

    Char => int => long => float => double

    Byte => short => int => long => float => double

    int n1 = 10;
    float d1 = n1 + 1.1; // error n1 + 1.1 => 结果类型是double
    float d2 = n1 + 1.1F; // 正确
  2. 当吧进度打的数据类型肤质给精度小的数据类型时,就回报错

  3. Byte, short 和 char 之间不会自动转换

  4. Byte,short,char 三者之间可以计算, 计算时首先转换为int类型

    byte b1 = 1;
    short s1 = 100;
    int n1 = 1;
    double n2 = 1.1;

    // 表达式结果自动提升为 操作数种最大的类型
    double sum = b1 + s1 + n1 + n2;

引用数据类型

  1. class (类):
  2. Interface (接口):
  3. [] 数组:

转义符