j+=300;  这里的 += 是一个二元运算符,系统认为是byte和byte相加。而 j = j + 300  => j + 300 已经是int型,系统不会自动转型的。

解决方案 »

  1.   

    第一种情况系统会自动把300转换byte型再计算机内表示为补码00101100
    127的补码为01111111
       00101100
      +01111111
    -------------
       10101011
    转换成原码就是-85
    第2种2个不同级别的类型相加,低级别的会向高级别转换,即byte会向int转
    而int不会自动向byte转 所以要强行转换成byte
      

  2.   

    topsonstar(星)说得对
    第一句因为右边只有byte型,所以不需要转换
    第二句因为byte和int型相加,所以自动造型成int型
      

  3.   

    to:topsonstar(星) 
    byte+byte结果是int