Java中只有值传递,很多人看到这个结论都会有疑问,值传递和引用传递的区别是什么?Java中只有值传递,没有引用传递的话,那对我们调用方法传对象类型的参数,会有什么影响?
下面我们先来复习下值传递和引用传递。
值传递和引用传递
- 值传递(pass by value):指在调用函数时,将实际参数复制一份传递到函数中。
- 引用传递(pass by reference):指在调用函数时,将实际参数的地址直接传递到函数中,那么在函数中对参数进行修改,将影响到实际参数。
值传递 | 引用传递 | |
---|---|---|
根本区别 | 会创建副本 | 不创建副本 |
结果 | 函数中无法改变原始对象 | 函数中可以改变原始对象 |
了解到两者区别后,下面通过3个例子说明。
例子1:传递基本类型参数
代码示例:
public class t1 {
public static void main(String[] args) {
int i = 10;
t1.pass(i);
System.out.println("print in main , i is " + i);
}
public static void pass(int i)</