Java函数的参数传递方式及其参数类型
发布时间:2023-06-23 12:20:23
在Java中,参数传递的方式主要有两种:传值和传引用。参数类型包括基本数据类型和引用数据类型。
1. 传值
传值是指将实参的值复制一份传递给形参。这样,在函数内修改形参的值不会影响到实参。Java中的基本数据类型(int、double等)是以传值的方式进行传递的。
例如,以下代码中的swap方法接收两个int类型的参数a和b,其实参分别为1和2。在函数内部,使用一个临时变量temp来交换a和b的值,但不会影响原来的实参。
public static void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
public static void main(String[] args) {
int x = 1, y = 2;
swap(x, y);
System.out.println("x=" + x + ", y=" + y);
}
//输出结果:x=1, y=2
2. 传引用
传引用是指将实参的地址传递给形参,形参对应的是同一个对象。这样,在函数内修改形参的值也会同时修改实参。Java中的引用类型(数组、对象等)是以传引用的方式进行传递的。
例如,以下代码中的modify方法接收一个int类型的数组参数arr。在函数内部将数组 个元素的值修改为10,这个修改也会同步到原来的实参arr上。
public static void modify(int[] arr) {
arr[0] = 10;
}
public static void main(String[] args) {
int[] arr = {1, 2, 3};
modify(arr);
System.out.println("arr[0]=" + arr[0]);
}
//输出结果:arr[0]=10
需要注意的是,Java中的String类型虽然是引用类型,但其实质是不可变的。当对一个String对象进行修改时,实际上是创建了一个新的String对象,原来的String对象并没有被修改。因此,对于String类型的参数,传值和传引用的效果是一样的。
