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

了解Java函数参数传递的方式和区别

发布时间:2023-11-06 17:23:30

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

按值传递是指在函数调用时,实际参数的值会被赋值给形式参数,形式参数是实际参数的副本,而不是直接引用实际参数。在函数内部修改形式参数的值不会影响实际参数的值。

按引用传递是指在函数调用时,实际参数的引用被传递给形式参数,函数中对形式参数的修改会直接影响实际参数。

可以用以下示例来说明这两种传递方式的不同:

public class ParameterPassing {
    public static void main(String[] args) {
        int a = 10;
        int[] arr = {1, 2, 3};

        changeValue(a);
        System.out.println("a = " + a);  // 输出: a = 10

        changeArrayValue(arr);
        System.out.println("arr[0] = " + arr[0]);  // 输出: arr[0] = 100
    }

    public static void changeValue(int a) {
        a = 100;
    }

    public static void changeArrayValue(int[] arr) {
        arr[0] = 100;
    }
}

在上面的示例中,main函数中定义了一个整型变量a和一个整型数组arr。通过调用changeValue(a)changeArrayValue(arr)函数,分别传递了a的值和arr的引用。

changeValue(int a)函数中,形式参数a被赋值为实际参数的副本,所以对a的修改不会影响实际参数a的值。

而在changeArrayValue(int[] arr)函数中,形式参数arr被赋值为实际参数arr的引用,所以对arr数组元素的修改会直接影响实际参数arr。

通过上面的示例可以看出,Java中的基本类型参数按值传递,而引用类型参数按引用传递。

需要注意的是,虽然按引用传递是指传递的是引用的副本,但实际上传递的仍然是引用的值,所以在函数内部修改形式参数的值会直接修改实际参数的值。

总结起来,Java中函数参数传递的方式有两种:按值传递和按引用传递。按值传递是指传递参数的值的副本,对形式参数的修改不会影响实际参数。按引用传递是指传递引用的副本,对形式参数的修改会直接影响实际参数。在实际编程中,需要根据具体的需求选择适合的传递方式。