如下代码,执行test()函数后,屏幕打印结果为()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
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 + "" ); } } |
涉及Java
1.函数的引用传递和指针传递
2.涉及Java Byte等相关类型的autoboxing
3.涉及基本类型Byte,Integer,Long
4,涉及Java中++ 实现的temp原理
具体执行过程如下:
step1:引用传递
step2:对b进行自动拆包,++是针对基本类型的操作符,运用byteValue(),拆包
step3:temp = b.byteValue();b拆箱后的值
step4:b自动装箱,此时b的值为-128
step5: Byte b = temp;
step6;重新执行一遍autoboxing操作
自动拆装箱是成对出现的,统称为autoboxing