欢迎访问宙启技术站
智能推送

Java函数中常用的参数传递方式有哪些?

发布时间:2023-06-12 06:12:46

Java函数中常见的参数传递方式有值传递和引用传递两种。

1. 值传递

值传递是指将参数值复制一份,然后将复制的值传递给函数,函数在执行过程中对参数值的修改不会影响到原来的值。

例如:

public class Test {
    public static void main(String[] args) {
        int a = 10;
        changeNum(a);
        System.out.println(a);   // 输出结果为10
    }
    
    public static void changeNum(int num) {
        num = 20;
    }
}

在这个例子中,调用changeNum函数时传递的参数a的值被复制成了num的值,当在函数内部修改num的值时,不会影响到a的值,因此输出结果是10。

2. 引用传递

引用传递是指将参数的引用(地址)复制一份,然后将复制的引用传递给函数,函数在执行过程中通过引用访问参数的值,对参数进行修改会影响到原来的值。

例如:

public class Test {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3};
        changeArr(arr);
        System.out.println(Arrays.toString(arr));  // 输出结果为[2, 4, 6]
    }
    
    public static void changeArr(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            arr[i] *= 2;
        }
    }
}

在这个例子中,数组arr被传递给changeArr函数时,复制了一份arr的引用,函数内部对arr的修改会影响到原来的数组,因此在调用完函数后输出的结果是[2, 4, 6]。

需要注意的是,Java中基本数据类型(如int、char等)都是属于值传递,而对象类型(如String、数组等)都是属于引用传递。同时,在Java8之前,Lambda表达式中使用的变量也是属于值传递,而在Java8之后,Lambda表达式可以使用引用传递的方式来访问外部变量。