欢迎访问宙启技术站
智能推送

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类型的参数,传值和传引用的效果是一样的。