1. byte a1 = 2, a2 = 4, a3;
2. short s = 16;
3. a2 = s;
4. a3 = a1 * a2;
第三行和第四行出错:数值型变量在默认情况下为Int型,byte和short型在计算时会自动转换为int型计算,结果也是int 型。所以a1*a2的结果是int 型的。
public class Test2
{
public void add(Byte b)
{
b = b++;
}
public void test()
{
Byte a = 127;
Byte b = 127;
add(++a);
System.out.print(a + " ");
add(b);
System.out.print(b + "");
}
}
正解:
-128 127
包装类的值都是final 不可变的,对于b 或者b ,只是新创建了一个对象,然后把引用传给了原对象句柄,在函数中操作,只是形参的临时句柄改变了指向,实参的句柄还是指向原来的对象。所以即使不是b = b++ 这种,b的值在add之后也是不会变的。(add函数就是摆设)- 基本数据类型所占字节: | 类型 | 字节 | | —- | —- | | byte | 1 | | short | 2 | | int | 4 | | float | 4 | | double | 8 | | char | 2 | | boolean | |