以下代码,执行test()函数后,屏幕打印结果为()java
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 + "");
}
}
-
127 127
-
128 127
-
129 128
-
以上都不对
答案:D函数
- public void add(Byte b){ b=b++; }
- 这里涉及java的自动装包/自动拆包(AutoBoxing/UnBoxing)
- Byte的首字母为大写,是类,看似是引用传递,
- 可是在add函数内实现++操做,会自动拆包成byte值传递类型,
- 因此add函数仍是不能实现自增功能。
- 也就是说add函数只是个摆设,没有任何做用。
- Byte类型值大小为-128~127之间。
- add(++a);这里++a会越界,a的值变为-128 add(b);
- 前面说了,add不起任何做用,b仍是127