因为b是byte类型最大 255 而7是int型在 b+= 7的时候并没有 byte类型和int类型的运算 (其实是有的,不过被强制转换了)b=b+7就产生的byte与int的运算,java编译器认为这样会产生精度错误。

解决方案 »

  1.   

    小弟还有一个疑问,JAVA中有没有和C++中的sizeof()函数功能一样或相仿的函数呢,我主要是想要测试一个简单类型的size以便知道他究竟是什么类型的
      

  2.   

    to dooby(德鲁比) 
    那么您能否详细讲一下这其中的强制转换
      

  3.   

    to mymoto(忽忽) 
    还有一种说法是说+=事实上先把其左边的operand转化为右边的类型然后进行运算,最后再把结果强制转换为左边operand的原有类型,究竟哪一种对啊
      

  4.   

    b=b+7的话,又边的是byte和int相加,生成的是int,你把这个int赋值给b(注意是byte)当然就错了,类型转换是byte->short->int->long->float->double