1. 1. byte a1 = 2, a2 = 4, a3;
    2. 2. short s = 16;
    3. 3. a2 = s;
    4. 4. a3 = a1 * a2;
    1. 第三行和第四行出错:数值型变量在默认情况下为Int型,byte和short型在计算时会自动转换为int型计算,结果也是int 型。所以a1*a2的结果是int 型的。

      1. public class Test2
      2. {
      3. public void add(Byte b)
      4. {
      5. b = b++;
      6. }
      7. public void test()
      8. {
      9. Byte a = 127;
      10. Byte b = 127;
      11. add(++a);
      12. System.out.print(a + " ");
      13. add(b);
      14. System.out.print(b + "");
      15. }
      16. }
    2. 正解:
      -128 127
      包装类的值都是final 不可变的,对于b 或者b ,只是新创建了一个对象,然后把引用传给了原对象句柄,在函数中操作,只是形参的临时句柄改变了指向,实参的句柄还是指向原来的对象。所以即使不是b = b++ 这种,b的值在add之后也是不会变的。(add函数就是摆设)

    3. 基本数据类型所占字节: | 类型 | 字节 | | —- | —- | | byte | 1 | | short | 2 | | int | 4 | | float | 4 | | double | 8 | | char | 2 | | boolean | |