美文网首页
java基本数据类型

java基本数据类型

作者: pretty_rain | 来源:发表于2019-05-10 16:56 被阅读0次

    数据类型分为两大类,下面详细介绍基本数据类型:

    1.基本数据类型的字节数和范围

    注意:整数默认是int类型,浮点数默认是double,long类型的数要加l或者L,单精度的浮点数要加F或f
    1、
    基本类型:short 二进制位数:16
    包装类:java.lang.Short
    最小值:Short.MIN_VALUE=-32768 (-2的15此方)
    最大值:Short.MAX_VALUE=32767 (2的15次方-1)
    2、
    基本类型:int 二进制位数:32
    包装类:java.lang.Integer
    最小值:Integer.MIN_VALUE= -2147483648 (-2的31次方)
    最大值:Integer.MAX_VALUE= 2147483647 (2的31次方-1)
    3、
    基本类型:long 二进制位数:64
    包装类:java.lang.Long
    最小值:Long.MIN_VALUE=-9223372036854775808 (-2的63次方)
    最大值:Long.MAX_VALUE=9223372036854775807 (2的63次方-1)
    4、
    基本类型:float 二进制位数:32
    包装类:java.lang.Float
    最小值:Float.MIN_VALUE=1.4E-45 (2的-149次方)
    最大值:Float.MAX_VALUE=3.4028235E38 (2的128次方-1)
    5、
    基本类型:double 二进制位数:64
    包装类:java.lang.Double
    最小值:Double.MIN_VALUE=4.9E-324 (2的-1074次方)
    最大值:Double.MAX_VALUE=1.7976931348623157E308 (2的1024次方-1)

    类型 占用字节 最小值 最大值
    boolean 1字节
    byte 1字节 -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
    char 2字节 -128 127
    float 4字节 2^-149 2^128-1
    double 8字节 2^-1074 2^1024-1

    2.数据类型转换

    1.boolean类型不参与转换
    2.默认转换

    • (1).从小到大
    • (2)byte,short,char -- int -- long -- float -- double
    • (3)byte,short,char之间不相互转换,直接转成int类型参与运算

    3.强制转换

    • (1)从大到小
    • (2)可能会有精度损失,一般不建议这样使用
    • (3)格式:目标数据类型 变量名 = (目标数据类型)被转换的数据

    4.思考题

    • (1)下面两种方式有区别吗
                float f1 = 12.345f;
                float f2 = (float)12.345;
    

    执行都没有问题但是f1是正常赋值,f2是double转换来的,转换就要截取double的4个字节这样容易丢精度

    • (2)下面的程序有问题吗,如果有,在哪里呢
                byte b1 = 3;
                byte b2 = 4;
                byte b3 = b1 + b2;
                byte b4 = 3 + 4;
    

    有问题,第三行会报错,两个byte类型的数据运算会转换成int类型,第四行没错,因为在对应的class文件中我们会看到在编译完成后就成了 byte = 7,然后看是否在byte的范围内,如果在就不报错

    • (3)下面的操作结果是什么呢?
    byte a = 130;
    byte b = (byte)130;
    

    第一行会报错,因为超出了byte的范围
    第二行计算过程:
    A:获取130这个数据的二进制。
    00000000 00000000 00000000 10000010
    这是130的原码,也是反码,还是补码。
    B:做截取操作,截成byte类型的了。
    10000010
    这个结果是补码。
    C:已知补码求原码

    符号位 数值位
    补码 1 0000010
    反码 1 0000001
    原码 1 1111110
    • (4)字符参与运算
                System.out.println('a');//结果:a
                System.out.println('a' + 1);//结果:98
    
    • (5)字符串参与运算
                System.out.println("hello"+'a'+1);//helloa1
                System.out.println('a'+1+"hello");//98hello
                System.out.println("5+5="+5+5);//5+5=55
                System.out.println(5+5+"=5+5");//10=5+5
    

    相关文章

      网友评论

          本文标题:java基本数据类型

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