java一个简单问题

来源:百度知道 编辑:UC知道 时间:2024/05/31 02:10:45
public class l {
public static void main(String s[]){
byte b;
b=12;
b=(byte) (b*12);

System.out.print(b);

}

}
为什么我把上边代码中byte 的()去掉,编译是就出现错误呢???

(byte)是强制转换符号,它有特定的格式,就是(类型)。去掉()后编译器就不能识别byte是什么意思了。
另外,这个程序的结果输出的是-122,因为144超出了byte所能表示的范围,结果溢出。

因为b*12 为int型,得强制转换为byte型