Java函数参数的传递方式是什么。
发布时间:2023-06-14 00:30:03
Java函数的参数传递方式可以分为两种:值传递和引用传递。
值传递的方式是将值类型的参数传递给函数。在函数内部,会创建一个新的变量,将传递进来的参数的值复制到新的变量中,然后对新的变量进行操作。因此,函数内对参数进行的修改不会影响到外部的变量。值传递的方式适用于原始数据类型,例如int、float、double等。
示例代码:
public class Test {
public static void main(String[] args) {
int x = 10;
changeValue(x);
System.out.println("x=" + x);
}
public static void changeValue(int num) {
num = 20;
System.out.println("num=" + num);
}
}
输出结果:
num=20 x=10
可以看出,虽然在changeValue函数里修改了num的值,但是在main函数中的x值并没有发生改变。
引用传递的方式是将引用类型的参数传递给函数。在函数内部,会创建一个新的变量,将传递进来的参数的引用地址复制到新的变量中,此时外部的变量和内部的变量都指向同一个对象。因此,函数内对引用对象进行的修改会影响到外部的对象。引用传递的方式适用于对象类型,例如Array、String、List等。
示例代码:
public class Test {
public static void main(String[] args) {
int[] nums = {1, 2, 3, 4, 5};
changeArray(nums);
System.out.println(Arrays.toString(nums));
}
public static void changeArray(int[] arr) {
arr[0] = 10;
System.out.println(Arrays.toString(arr));
}
}
输出结果:
[10, 2, 3, 4, 5] [10, 2, 3, 4, 5]
可以看出,在changeArray函数中修改了arr数组的 个元素的值为10,而在main函数中nums数组的 个元素的值也被改为了10。
需要注意的是,在Java中不存在指针类型参数的传递方式,因此没有C/C++中的指针传递。如果有需要传递指针的场景,可以通过包装为对象的方式来实现。
