值传递
值传递 (Pass by Value)
- 当我们传递一个基本数据类型时,传递的是该值的副本。函数对副本进行修改不会影响原始值。
- Java 中 基本数据类型 的传递就是值传递。
示例代码
public class ValuePassing {
public static void modifyValue(int num) {
System.out.println("方法内部修改前:num = " + num);
num = 20; // 修改的是参数的副本
System.out.println("方法内部修改后:num = " + num);
}
public static void main(String[] args) {
int originalValue = 10;
System.out.println("调用方法前:originalValue = " + originalValue);
modifyValue(originalValue); // 将 originalValue 的值(10)复制一份传递给 modifyValue 方法
System.out.println("调用方法后:originalValue = " + originalValue);
}
}
输出结果:
调用方法前:originalValue = 10
方法内部修改前:num = 10
方法内部修改后:num = 20
调用方法后:originalValue = 10
解释:
- 在
main
方法中,originalValue
的初始值是10
。 - 当调用
modifyValue(originalValue)
时,originalValue
的值10
被复制一份传递给了modifyValue
方法的参数num
。 - 在
modifyValue
方法内部,对num
的修改(num = 20;
)仅仅改变了方法内部num
这个副本的值,不会影响到main
方法中的originalValue
。 - 因此,方法调用结束后,
originalValue
的值仍然是10
。