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

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

发布时间:2023-06-01 10:44:02

Java函数中的参数传递方式包括值传递和引用传递两种。

值传递是指当函数被调用时,参数的值被复制并传递给函数,函数内部对参数的修改不会影响原来的参数值。在值传递的情况下,形参是实参的一个副本,形参的修改只会影响自己的值,不会影响实参的值。例如:

public void setValue(int x) {
    x = 10;
}

public static void main(String[] args) {
    int a = 5;
    setValue(a);
    System.out.println(a); //输出5
}

上述代码中,setValue函数对参数x进行修改,但是main函数中的变量a没有受到任何影响。

引用传递是指当函数被调用时,参数的引用被复制并传递给函数,函数内部对参数引用所指向的对象的修改会影响原来的对象。在引用传递的情况下,形参和实参指向同一个对象,形参和实参内部的值是相同的,形参的修改将会影响到实参。例如:

public void setValue(int[] arr) {
    arr[0] = 10;
}

public static void main(String[] args) {
    int[] a = {5, 6, 7};
    setValue(a);
    System.out.println(a[0]); //输出10
}

上述代码中,setValue函数对参数arr所指向的数组进行修改,这影响了main函数中的变量a。

需要注意的是,Java中基本数据类型是采用值传递的方式传递的,而引用类型是采用引用传递的方式传递的。因此,如果一个参数是基本数据类型,无论怎样修改它都不会影响原来的值,而如果一个参数是引用类型,它可能会修改所指向的对象,从而影响原来的值。

此外,Java中还有一种特殊的引用类型,即String类。虽然String类是引用类型,但是它的值是不可修改的。因此,在函数中修改一个String类型的参数的值,实际上是创建一个新的String对象并赋值给这个参数,原来的String对象并没有被修改。