Java函数传递参数的方法详解
发布时间:2023-05-20 20:22:40
在Java中,函数传递参数的方式有三种:按值传递、按引用传递和按地址传递。
1. 按值传递
按值传递是指将函数实参的值复制一份作为形参的值传递给函数,在函数内部对参数的修改不会影响原来的实参。在Java中,所有的基本数据类型都是按值传递的,如int、float、double等。
以下是按值传递的一个简单例子:
public class PassByValueExample {
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;
}
}
输出结果是:a = 10, b = 20。
在该例子中,swap函数接收的是变量a和b的值,所以在函数内部对它们的修改不会影响原来的实参a和b,也就是说,实参a和b的值保持不变。
2. 按引用传递
在Java中,对象引用是按引用传递的。按引用传递是指传递函数实参的引用地址,也就是说,函数形参和实参指向同一块内存空间,函数内部对参数的修改会影响原来的实参。以下是按引用传递的一个简单例子:
public class PassByReferenceExample {
public static void main(String[] args) {
int[] arr = {10, 20};
change(arr);
System.out.println("arr[0] = " + arr[0] + ", arr[1] = " + arr[1]);
}
public static void change(int[] array) {
int temp = array[0];
array[0] = array[1];
array[1] = temp;
}
}
输出结果是:arr[0] = 20, arr[1] = 10。
在该例子中,change函数接收的是arr数组的引用地址,所以在函数内部对arr数组的修改会影响原来的实参arr数组。
3. 按地址传递
按地址传递是指传递函数实参的指针地址。在Java中,指针是被封装的私有成员,不能直接访问,所以Java不支持按地址传递参数。但是,可以使用JNI(Java Native Interface)技术来实现按地址传递参数。
总结:
在Java中,函数传递参数的方式有三种:按值传递、按引用传递和按地址传递。按值传递是指将函数实参的值复制一份作为形参的值传递给函数;按引用传递是指传递函数实参的引用地址,函数内部对参数的修改会影响原来的实参;按地址传递是指传递函数实参的指针地址,Java不支持按地址传递参数。
