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

JAVA函数的参数传递方式

发布时间:2023-06-21 02:58:30

Java函数的参数传递方式是指向函数传递输入参数的方法,分为值传递和引用传递两种方式。

值传递

值传递是指将实参的值拷贝一份传递给形参,函数内部对形参的修改不会影响实参本身。Java基本类型和String类型都是采用值传递。

示例代码:

public static void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

public static void main(String[] args) {
    int a = 10, b = 20;
    swap(a, b);
    System.out.println("a = " + a + ", b = " + b);
}

运行结果:

a = 10, b = 20

可以看出,虽然在swap函数中交换了a和b的值,但是在函数外部实际的a和b的值并没有被修改。

引用传递

引用传递是指将实参的地址传递给形参,函数内部对形参的修改会直接影响到实参本身。Java中的数组、集合和对象等都是采用引用传递。

示例代码:

public static void swap(int[] arr) {
    int temp = arr[0];
    arr[0] = arr[1];
    arr[1] = temp;
}

public static void main(String[] args) {
    int[] arr = {10, 20};
    swap(arr);
    System.out.println("arr[0] = " + arr[0] + ", arr[1] = " + arr[1]);
}

运行结果:

arr[0] = 20, arr[1] = 10

可以看出,由于在swap函数中修改了arr的值,因此在函数外部的arr的值也被修改了。

需要注意的是,Java中的String类型虽然是基本类型的包装类,但是其在引用传递中表现出与基本类型不同的特性,即其值不可变。这是因为Java中的字符串常量池会缓存字符串,如果修改字符串的值会破坏字符串的常量性。

总结

Java函数的参数传递方式分为值传递和引用传递两种方式,应根据实际情况选择合适的传递方式。需要注意的是,Java中String类型在引用传递中具有特殊性质,应注意字符串的常量性。