Java函数的参数传递方式是什么?
发布时间:2023-06-30 10:15:30
在Java中,函数的参数传递方式有两种:值传递(传值)和引用传递(传址)。
1. 值传递:
值传递是指将参数的值复制一份后传递给函数。在函数内部对参数进行修改不会影响到原始变量的值。
举个例子:
public class Main {
public static void main(String[] args) {
int num1 = 10;
// 调用方法
changeValue(num1);
System.out.println("num1的值为:" + num1);
}
public static void changeValue(int num2) {
++num2;
}
}
输出结果为:
num1的值为:10
在上面的例子中,通过传递num1的值给changeValue方法中的num2参数,对num2进行自增操作,但并没有影响到原始的num1变量的值。
2. 引用传递:
引用传递是指将参数的引用(即内存地址)传递给函数。在函数内部对参数进行修改会影响到原始变量的值。
举个例子:
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3, 4};
// 调用方法
changeArray(arr);
System.out.println("arr[0]的值为:" + arr[0]);
}
public static void changeArray(int[] array) {
array[0] = 100;
}
}
输出结果为:
arr[0]的值为:100
在上述例子中,通过引用传递方式将arr数组的引用传递给changeArray方法中的array参数。在方法内部,修改了array[0]的值为100。由于arr和array都指向同一块内存地址,所以对array的修改也会影响到arr数组的值。
需要注意的是,虽然Java中使用引用传递时,传递的是引用的值(即内存地址),但这并不意味着可以通过修改参数的引用来改变原始变量的引用。例如,将一个对象类型的参数指向新对象,不会改变原始变量指向的对象。
综上所述,Java中的函数参数传递方式可以通过值传递和引用传递来实现。对于基本数据类型,采用值传递,对于对象类型,采用引用传递。
