class Test1{
public static void main(String args[]){
byte Byte=10;
byte Double=12;
byte Integer=Byte*Double;
 }
}
8字节多大?
120都不行了。

解决方案 »

  1.   

    System.out.println(Byte.MAX_VALUE);
    System.out.println(Byte.MIN_VALUE);
      

  2.   

    在对表达式求值时,将自动把byte和short扩大为int,表达式的值也是int型的,所以当你把Byte*Double这个int类型的值赋给Integer这个byte类型的变量时,编译器就会报错,如果这么改一下就没有问题了:byte Integer=(byte)(Byte*Double);//强制转换
      

  3.   

    class Test1{
    public static void main(String args[]){
    byte Byte=10;
    byte Double=12;//改为120的话却通过了 byte Integer=Byte*Double;//相乘=120却通过不了
     }
    }
      

  4.   

    byte Integer=Byte*Double;这个语句不行了哈!
    因为Byte*Double执行后的结果是一个int类型的(运算的时候类型自动提升了),不能将一个int类型赋值给一个byte类型;所以就不能通过了!
    byte Double=120;而这个是将120这个数值赋值给一个byte类型当然就可以通过了!