Java-随便记记-数据类型转化原则

0.先结论

对于+,-,*,/,%(即加减乘除余)运算来说:

  • 只要有一个算数是double,结果就是double(算数转为double再运算);
  • 否则,只要有一个算数是float,结果就是float(算数转为float再运算);
  • 否则,只要有一个算数是long,结果就是long(算数转为long再运算);
  • 否则,结果为int(算数转为int再运算);
    对于+=,-=,/=,*=来说,结果取决于左边运算符的类型(先计算后强转型);

1.例子如下

public class BasicDataType {
    public static void main(String[]args){
        char c1 = 'a',c2 = 'b';
        byte b1 = 1,b2 = 2;
        short s1 = 3,s2 = 4;
        int i1 = 5,i2 = 6;
        long l1 = 7,l2 = 8;
        float f1 = 1.0f,f2 = 2.0f;
        double d1 = 3.0,d2 = 4.9;
        System.out.println(getDataType(d1+i1));//double与int相加
        System.out.println(getDataType(f1+b1));//float与byte相加
        System.out.println(getDataType(l1-c1));//long减去char
        System.out.println(getDataType(c2+b2));//char与byte相加
        //+=和*=等运算符会转化为左边数据的类型
        // 先计算,再强制转化成左边类型;不是先转化,后计算;
        System.out.println(l2*=d2);//所以结果不是8*4=32,而是(long)(8*4.9)=39
        System.out.println(getDataType(s1+=i2));
        System.out.println(getDataType(l2*=d1));


    }
    public static String getDataType(Object object){
        return object.getClass().toString();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值