java学习 类型运算 琐碎

class Test
{
public static void main(String[] args)
{
    byte b = 4;
    byte b1 = 3;
    byte b2 = 7;
    b = b1 + b2;
    System.out.println(b);
}
}

编译时出错,提示不能将int转化为byte

首先需要明白 byte b = 4;计算机是如何处理的。

我们知道java整型的默认类型是int。

等号右边的4是int型常量 占四个字节 ;而左侧的b是byte型 占一个字节 当计算机检测到右侧的常量在 -128~127之间时,便将int型转换为byte(在这里转换是没问题的,因为byte的一个字节足够装下)。

同理我们可知三次初始化都是没问题的。

问题出现在b=b1 + b2;

因为b1与b2都是变量,两者相加的和计算机并不知道是多少,而且b1与b2可能是在运行时赋值,所以计算机会认为此处错误。

而相同写法,换成int就不会出错 因为int是默认类型,而且int相加比byte相加出错的概率要大得多。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值