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 的()去掉,编译是就出现错误呢???
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型