Java是值传递

一、定义

值传递:当⼀个参数按照值的⽅式在两个⽅法之间传递时,调⽤者和被调⽤者其实是⽤的两个不同的变量——被调⽤者中的变量(原始值)是调⽤者中变量的⼀份拷⻉,对它们当中的任何⼀个变量修改都不会影响到另外⼀个变量。

引用传递:当⼀个参数按照引⽤传递的⽅式在两个⽅法之间传递时,调⽤者和被调⽤者其实⽤的是同⼀个变量,当该变量被修改时,双⽅都是可⻅的。

 

二、举例

值类型:

public static void main(String[] args) {
        int i = 5;
        f(i);
        System.out.println("i = " + i);
    }

    public static void f(int j) {
        j = 10;
    }

调用函数 f() 时,会将 main 中 形参 i 的值赋值给形参 j。这是两个不同的变量,对变量 j 的操作不会影响变量 i 

 

引用类型:

    public static void main(String[] args) {
        String name = "张三";
        f(name);
        System.out.println("name = " + name);
    }

    public static void f(String name) {
        name = "李四";
    }

由于name是引用类型,name中保存的值是一个地址,调用函数 f() 时,会将这个地址传给形参 name,之后形参 name 中会保存字符串 "李四" 的地址,形参 name 的地址没有改变,输出的自然是张三了。

posted @ 2024-02-17 22:35  LANE_AZUR  阅读(5)  评论(0编辑  收藏  举报