-
Java 中只有值传递,没有引用传递。所有方法传参都是传递实参的副本。
-
基本数据类型:拷贝的是真实的数据值;修改形参,外部变量不受影响。
-
引用数据类型:拷贝的是对象的地址值(引用)。
- 如果通过拷贝出来的地址修改堆中对象的成员属性,原始对象会受影响;
- 如果直接给形参重新赋值
u=new User(),只是修改副本引用,外面实参完全不受改变。
就比如:
public static void main(String[] args){
int num=10;
changeValue(num);
sout(num);//10
}
public static void changeValue(int a){
a=20;//这里传入的是num的副本
}

拷贝的是对象地址,原始属性会被影响