java 因为数据类型导致的运算错误

原因代码里面的注释已经给出

1、a = a + 1报错:数据类型不兼容,a += 1 可以正常运行

/**
 * 复合赋值运算符
 */
public class JavaDemo04 {
    public static void main(String[] args) {
        byte a = 1;
        //a = a + 1;      //会报错:类型不兼容 , 因为小于int类型的数据类型进行运算时会先转换为int类型  --> int + int -->int != byte        
        a += 1;           //复合赋值运算符,会自动进行强制类型转换,所以不会报错  --> (byte)int
        System.out.println(a);
    }
}

2、b3 = b1+ b2报错:数据类型不兼容, b3 = 1 + 2 可以正常运行

/**
 * 类型转换
 */
public class JavaDemo {
    public  static void main(String[] args) {
        byte b1 = 1;
        byte b2 = 2;
        byte b3 = (byte)(b1 + b2);  //当变量的数据类型小于int时,会先转换成int在运算,不加上强制转换(byte)会导致报错:类型不兼容    
        byte b4 = 1 + 2;            //如果是常量运算则不会发生这类报错,因为编译器会自动转换常量的数据类型
        System.out.println(b3);
        System.out.println(b4);
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值