楼上几位说的,不是我本想问的.Byte b = new Byte(12);//错误!byte b=12;//合法!!关键是上面的两个.
楼上几位说的是正确的, Byte b = new Byte(12);//错误是因为JAVA将12作为整形数来处理,而Byte的构造方法要求带一个byte型的数字进去,故而出错。 byte b = 12 ; //合法是因为其中隐含了一个类型转换,如果你试试下面的代码应该会有点体会short s1 = 1 ; short s2 = 2 ; short s3 = s1 + s2 ;//这里会出错,因为JAVA在进行运算的时候会把s1和s2转换为int型,然后赋值给short型的s3的时候就会出错。Byte b = new Byte((byte)12);//正确。如果你还不明白我真没办法解释了……
因为Byte的构造函数是:Byte(byte)而不是Byte(int)
int的取值范围毕byte要大啊,所以就不能这样定义了。
Byte b = new Byte(12);//错误是因为JAVA将12作为整形数来处理,而Byte的构造方法要求带一个byte型的数字进去,故而出错。
byte b = 12 ; //合法是因为其中隐含了一个类型转换,如果你试试下面的代码应该会有点体会short s1 = 1 ;
short s2 = 2 ;
short s3 = s1 + s2 ;//这里会出错,因为JAVA在进行运算的时候会把s1和s2转换为int型,然后赋值给short型的s3的时候就会出错。Byte b = new Byte((byte)12);//正确。如果你还不明白我真没办法解释了……
Byte是一个类..声明对象用new和一个初始值..