java 语言,帮忙解释一下这句话,顺便说下结果,谢谢!

2024-12-27 12:30:04
推荐回答(4个)
回答1:

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
}

}

回答2:

编译出错,3默认的是int型,运算的时候需要强制转换
原来的意思:定义一个变量b,
3*b重新赋给b
最后输出

回答3:

是存在一个类型转换问题,精确些就进行强转b=(byte)b*3;

回答4:

这是肯定的啊,因为你的b*3以后的值,是int型的,那么你把int型的直接赋给byte是不行的。