值传递
值传递 (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。