值传递

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

关联


文章作者: huan
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC-ND 4.0 许可协议。转载请注明来源 huan !
  目录