美文网首页
数据类型

数据类型

作者: 小疏林er | 来源:发表于2020-07-07 12:50 被阅读0次

    1. 基本数据类型:(四类八种)

    整型:以补码类型表示

    byte:一个字节(-128~127,默认值是0)
    short:二个字节(-215~215-1,默认值是0)
    int:四个字节(-231~231-1,默认值是0)
    long:八个字节(-263~263-1,默认值是0L)

    浮点型:(Java中所有的小数都是不精准的,约等于,金融等精确方面不适用)

    float:四个字节 float a = 0.1f;
    double:八个字节 long b = 0.1;

    布尔型:boolean (true、false,布尔值不能转其他基本类型)

    字符型:('w'和"w"是两种不同的类型)

    char: (16 位 Unicode 字符,\u0000~\uffff)

              char a ='w';
              System.out.println(a);  //w
              System.out.println(String.valueOf(a));  //w,但是是字符串类型
              System.out.println(a+"");   //w,但是是字符串类型
              System.out.println((int)a);     //119 ASCII码
    

    注:

    1. java中整型默认int,加L变long int c =11111111111; ---->long c=11111111111L;
    2. 整型默认10进制,0开头代表八进制,0x开头代表十六进制
    3. 小数默认double类型,为了节省空间通常使用float,float a = 0.1f

    二进制:

    1. 原码:除2取余,逆序排列(从下到上),正数最高位为0,负数为1
    2. 反码:正数不变(依然是源码),负数取反(符号位不变)

        缺点:有+0 -0需要判断0000 0000,1111,1111 ;进位溢出问题

    3. 补码:正数不变(依然是源码),负数补码+1
          39+(-71)  
          -71原码:1100 0111  
          -71反码:1011 1000  
          -71补码:1011 1001  
          39补码:0010 0111  
          39-71:1011 1001 --->1110 0000 --->1101 1111 --->1010 0000  
    

    考:

    存在使i + 1 < i的数吗?
    存在, byte 127+1(溢出)


    2. 引用数据类型:

    引用类型指向一个对象,指向对象的变量是引用变量。类似于C语言当中的指针。

    引用数据类型大小为4个字节。

    1. 对象、数组都是引用数据类型。
      数组:int [] a=new int []{1,2,3,4,5};
      对象:Student s1 = new Student();
    2. 所有引用类型的默认值都是null。
    3. 变量一旦声明后,类型就不能被改变了。


      image.png

    3. 数据类型转换

    1. 显式转换(datetype)变量
      注意前后大小问题,是否超出转换范围 。
      大转小:实际数据内容是否超出精度,超出后会溢出造成数据丢失 。
      小转大:范围扩大,没什么影响 。

    1. 隐式转换(能不用就不用)
      普通运算时,小转大自动转 byte a + int b 自动int结果也是int(byte,short,char最少转到int)
      所有整数和浮点运算,自动转浮点
    byte a =1;
    short b =1;
    b=b + a;  //报错
    

    1. 转换示意图
    转换示意图
    蓝色虚线代表可能造成数据丢失的类型转换。
    红色实线代表无数据丢失的自动类型转换。

    相关文章

      网友评论

          本文标题:数据类型

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