java_day02_06运算符与数据类型转换

数据类型(掌握)

(1)Java是一种强类型语言,针对每种数据都提供了对应的数据类型。
(2)分类:
    A:基本数据类型:4类8种
    B:引用数据类型:类,接口,数组。
(3)基本数据类型
    A:整数            占用字节数
        byte            1
        short           2
        int             4
        long            8
    B:浮点数
        float           4
        double          8
    C:字符
        char            2
    D:布尔
        boolean         1

    注意:
        整数默认是int类型,浮点数默认是double。

        长整数要加L或者l。
        单精度的浮点数要加F或者f。

Java中整数默认是int类型的,小数默认是double类型的

一般来说,我们在运算的时候,要求参与运算的数据类型必须一致。
而当运算符两边的数据类型不一致时,就可能会默认转换

注意:
    boolean类型不能转换为其他的数据类型

默认转换(从小到大的转换)
    A:byte,short,char—int—long—float—double
    B:byte,short,char相互之间不转换,他们参与运算首先转换为int类型

class DataTypeDemo3 {
    public static void main(String[] args) {
        //直接输出的方式做加法
        //System.out.println(3 + 4);

        //两个int类型做加法
        int x = 3;
        int y = 4;
        int z = x + y;
        System.out.println(z);

        //定义一个byte类型,一个int类型,做加法
        byte a = 3;
        int b = 4;
        System.out.println(a + b);

        //可能损失精度
        //byte c =  a + b;
        int c = a + b;
        System.out.println(c);
    }
}

不同进制运算图解
有时为了需求,java提供了强制转换功能

强制转换:
    从大的数据类型到小的数据类型。
            byte a = 3;
            int b = 4;
            byte c = (byte) (a + b);
    格式:
        目标数据类型 变量 = (目标数据类型) (被转换的数据);

    注意:
        不要随意的去使用强制转换,因为它隐含了精度损失问题。

        下面操作可能会丢失精度
            double d = 12.3452222;
            float f = (float)d;

问题:
下面两式定义有何区别
        float f1 = (float)12.345;
        通过将double类型强制转换得到
        float f2 = 12.345F;
        本身就是float类型数据

面试题:
        byte b1=3,b2=4,b;
        b=b1+b2;//这个是类型提升(默认转换为int),所有有问题
        b=3+4;//常量,先把结果计算出来,然后看是否在byte的范围内,如果在就不报错。
        哪句是编译失败的呢?为什么呢?
        b = b1 + b2;是有问题的。
        因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。
        常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是,才报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值