public class test{
public static void main(String[] args){
byte a=5;
a=a+5;
byte b=5;
b+=5;
}
}
这段代码中,a=a+5因为表达式a+5是int类型,赋值给byte类型a而错误,下面的b+=5为什么不会报错呢,+=的运行机制究竟是怎么样的?求各位解惑!
public static void main(String[] args){
byte a=5;
a=a+5;
byte b=5;
b+=5;
}
}
这段代码中,a=a+5因为表达式a+5是int类型,赋值给byte类型a而错误,下面的b+=5为什么不会报错呢,+=的运行机制究竟是怎么样的?求各位解惑!
解释如下:
public class test10
{
public static void main(String[] args)
{
byte a=5;
a=(byte) (a+5); // 运算的a 是int型的,5是int型,因此需要强制类型转换,把int型转 // 换成byte型,输出的a是byte型的
System.out.println(a); // 把a强制转换成byte
byte b=5;
b+=5;
System.out.println(b);//直接输出的是byte的
}
}