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

Java函数参数的传递方式是什么。

发布时间:2023-06-14 00:30:03

Java函数的参数传递方式可以分为两种:值传递和引用传递。

值传递的方式是将值类型的参数传递给函数。在函数内部,会创建一个新的变量,将传递进来的参数的值复制到新的变量中,然后对新的变量进行操作。因此,函数内对参数进行的修改不会影响到外部的变量。值传递的方式适用于原始数据类型,例如int、float、double等。

示例代码:

public class Test {
    public static void main(String[] args) {
        int x = 10;
        changeValue(x);
        System.out.println("x=" + x);
    }

    public static void changeValue(int num) {
        num = 20;
        System.out.println("num=" + num);
    }
}

输出结果:

num=20
x=10

可以看出,虽然在changeValue函数里修改了num的值,但是在main函数中的x值并没有发生改变。

引用传递的方式是将引用类型的参数传递给函数。在函数内部,会创建一个新的变量,将传递进来的参数的引用地址复制到新的变量中,此时外部的变量和内部的变量都指向同一个对象。因此,函数内对引用对象进行的修改会影响到外部的对象。引用传递的方式适用于对象类型,例如Array、String、List等。

示例代码:

public class Test {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5};
        changeArray(nums);
        System.out.println(Arrays.toString(nums));
    }

    public static void changeArray(int[] arr) {
        arr[0] = 10;
        System.out.println(Arrays.toString(arr));
    }
}

输出结果:

[10, 2, 3, 4, 5]
[10, 2, 3, 4, 5]

可以看出,在changeArray函数中修改了arr数组的 个元素的值为10,而在main函数中nums数组的 个元素的值也被改为了10。

需要注意的是,在Java中不存在指针类型参数的传递方式,因此没有C/C++中的指针传递。如果有需要传递指针的场景,可以通过包装为对象的方式来实现。