Java传参的两种方式
- call by value(值传递):传递的是值(针对基本数据类型),如传递一个整型数值。实际上,按值传递在方法调用方法中,参数只是实际参数的一份拷贝。
- 不会改变值
- call by reference(引用传递):传递的是对象的引用(针对对象),即传递的是对象的地址。实际上,引用按传递时候会产生一份新的引用拷贝,新旧两份引用同时指向同一个地址。
- 改变值
call by value:
a = 3;
g(a);
m = 5;
m = m*x = 5*a = 15;
x = m-5 = 10;
return x+m = 25;
c = 25;
return a+c = 3+25 = 28 (D)
call by reference:
a = 3;
g(a);
m = 5;
m = m*x = 5*a = 15;
a = x = m-5 = 10;
return x+m = 25;
c = 25;
return a+c = 10+25 = 35 (A)