java初学者知识小总结-01(byte数据类型赋值出错)

数据类型

1.byte数据类型的说道

给byte数据类型赋值的时候很多时候会出现问题,说是Type mismatch: cannot convert from int to byte,这是因为byte赋值的右侧不能出现变量,

给个例子看看:

byte a=4;

a=a+4;

这是程序就会出现上述的问题,因为java中常量的默认类型都是int类型的,当进行赋值操作的时候,如果像这个一样,赋值给byte类型的数据,这是系统内部会先判断这个数据是否超过byte类型的最大范围(-128~127),如果没有超过则可以正常赋值,超过了会报错,但当程序执行到a=a+4这一句时,系统不能判断a+4是否在范围内,有的人会问了,a=4,a+4=8,是在范围内啊,但是可要知道了,这里的a是一个变量,变量顾名思义就是数值可以变化的量,说不定哪天有人把a=4这句改为a=127,这不就不行了么,,,

其中short类型和byte类型是一样的,如果赋值变量右侧有变量存在,都有可能会报错,,,

但是int类型不是这样的,如果右侧有变量,而且超过了int类型所涵盖的最大值,它就不会报错,只会溢出,


还有一个符号要注意+=  -=    *=   /=

这里就说一个+=

我们都知道a+=2;和a=a+2;效果是一样的,但这不是完全正确的,例如:

short s=4;

s+=2;

//s=s+2;如果写这句就会出错,原因和上面是一样的,赋值符号右侧有变量了,但是s+=2;这句话就是可以的,因为执行这句话的时候系统会先判断付给s的数是否超过它的范围,如果超过了,报错,没超过,强制类型转换之后进行赋值,所以就知道了,s+=2,这句话其实是等同于(在s是short类型时)s=(short)(s+2)

System.out.println(s);


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值