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

Java函数的传值与传引用

发布时间:2023-06-22 06:49:28

Java函数的参数传递共有两种方式:传值和传引用。这两种方式在编程中具有重要的意义,不同的情况需要采取不同的方式。

一、传值

传值是指将实际参数的值复制一份传递给形式参数,函数收到的是实际参数值的一个副本,对它进行修改不会改变实际参数的值。Java中的基本数据类型(整型、浮点型、字符型等)都是采用传值的方式传递。

例如:

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

 public static void swap(int x, int y) {
   int temp = x;
   x = y;
   y = temp;
 }
}

这个程序中的swap()方法是将传入的两个参数进行交换,但是实际的调用结果显示a和b的值没有被改变,这是因为传值的方式下,swap()方法只是修改了自己的局部变量x和y,而不会改变实际参数的值。

二、传引用

传引用是指将实际参数的地址复制一份传递给形式参数,函数收到的是实际参数地址的一个副本,对它进行修改会改变实际参数的值。Java中的对象、数组等都是采用传引用的方式传递。

例如:

public class Test {
 public static void main(String args[]) {
   int[] arr = {1, 2};
   change(arr);
   System.out.println("arr[0] = " + arr[0] + ", arr[1] = " + arr[1]);
 }

 public static void change(int[] a) {
   int temp = a[0];
   a[0] = a[1];
   a[1] = temp;
 }
}

这个程序通过传引用的方式将数组arr传递给change()方法,方法中对数组元素进行了交换操作,实际参数的值也随之改变。

总结:

Java中的方法通常使用传值方式传递基本数据类型的参数,使用传引用方式传递对象类型的参数。了解参数传递的原理,可以帮助我们更好地设计和使用函数,避免出现错误。