分析:
a. byte b = 1 + 1;
正确,定义一个byte类型的变量,并进行初始化,初始化时系统会自动完成强制转换;
b. byte b = 1; b = b + 1;
错误,因为该条语句中的第二条语句中b = b+1表达式中的1是int类型的(java中的整数默认为int型),
在进行计算的时候先将b的类型自动提升为int类型,然后再与1进行运算,最后得到一个int类型的结果,
如果要将这个结果赋值给byte类型的变量b,那么必须进行强制类型转换,即:b = (byte)(b+1)
c. byte b = 1; b = b += 1;
正确,因为"+="运算符在执行的时候会自动进行强制类型转换,转换之后为byte类型,再将其赋值给byte类型 的变量b,是成立的
d. byte b = 1; b = ++b;
正确,"++"为自增运算符,++b之后的结果为int类型的,但是系统自动进行强制转换,所以是正确的
|