public class ByteTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
byte b;// 声明一个byte类型的变量b
b = 3;// 为b赋值为3
// b = b * 3;//报错:Type mismatch: cannot convert from int to byte
// 因为b*3得到的是一个int类型的值,不能将int类型直接转化为byte类型
b = (byte) (b * 3);// 需要将b*3的类型转化为byte类型才能将其值赋予b
System.out.println(b);// 在控制台打印b
}
}
编译出错,3默认的是int型,运算的时候需要强制转换
原来的意思:定义一个变量b,
3*b重新赋给b
最后输出
是存在一个类型转换问题,精确些就进行强转b=(byte)b*3;
这是肯定的啊,因为你的b*3以后的值,是int型的,那么你把int型的直接赋给byte是不行的。