Java中的函数参数传递
发布时间:2023-06-09 18:33:02
Java中的函数参数传递是指将实参传入函数形参的过程。在Java中,函数参数传递有两种方式:值传递和引用传递。以下将详细介绍这两种传递方式的实现原理。
1. 值传递
Java中的基本数据类型(int、float、double等)和String类型都是通过值传递的方式传递的。这意味着当将这些类型的变量作为函数参数传递给另一个函数时,函数不会改变原始变量的值。
例子:
public class Main {
public static void main(String[] args) {
int a = 10;
System.out.println("Before: " + a);
changeValue(a);
System.out.println("After: " + a);
}
public static void changeValue(int num) {
num = 20;
}
}
输出:
Before: 10 After: 10
可以看到,changeValue函数并没有改变主函数中的变量a。
在值传递中,传递的是参数的拷贝,因此在函数内部修改参数的值不会影响到调用函数的那个变量的值。
2. 引用传递
在Java中,对象或数组的变量是通过引用传递的方式传递的。这意味着当将对象或数组作为函数参数传递给另一个函数时,函数可以改变原始变量的值。
例子:
public class Main {
public static void main(String[] args) {
int[] arr = {1, 2, 3};
System.out.println("Before: " + Arrays.toString(arr));
changeValue(arr);
System.out.println("After: " + Arrays.toString(arr));
}
public static void changeValue(int[] arr) {
arr[0] = 100;
arr[1] = 200;
arr[2] = 300;
}
}
输出:
Before: [1, 2, 3] After: [100, 200, 300]
可以看到,changeValue函数改变了主函数中的数组arr。
在引用传递中,传递的是参数的地址,因此在函数内部修改参数的值会改变传递过来的原始变量的值。
总结:
在Java中,函数参数传递有两种方式:值传递和引用传递。基本数据类型和String类型都是通过值传递的方式传递的,对象或数组的变量则是通过引用传递的方式传递的。在值传递中,传递的是参数的拷贝,因此在函数内部修改参数的值不会影响到调用函数的那个变量的值。在引用传递中,传递的是参数的地址,因此在函数内部修改参数的值会改变传递过来的原始变量的值。
