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

Java函数的参数传递方式是什么?

发布时间:2023-06-30 10:15:30

在Java中,函数的参数传递方式有两种:值传递(传值)和引用传递(传址)。

1. 值传递:

值传递是指将参数的值复制一份后传递给函数。在函数内部对参数进行修改不会影响到原始变量的值。

举个例子:

public class Main {
    public static void main(String[] args) {
        int num1 = 10;
        
        // 调用方法
        changeValue(num1);
        
        System.out.println("num1的值为:" + num1);
    }
    
    public static void changeValue(int num2) {
        ++num2;
    }
}

输出结果为:

num1的值为:10

在上面的例子中,通过传递num1的值给changeValue方法中的num2参数,对num2进行自增操作,但并没有影响到原始的num1变量的值。

2. 引用传递:

引用传递是指将参数的引用(即内存地址)传递给函数。在函数内部对参数进行修改会影响到原始变量的值。

举个例子:

public class Main {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4};
        
        // 调用方法
        changeArray(arr);
        
        System.out.println("arr[0]的值为:" + arr[0]);
    }
    
    public static void changeArray(int[] array) {
        array[0] = 100;
    }
}

输出结果为:

arr[0]的值为:100

在上述例子中,通过引用传递方式将arr数组的引用传递给changeArray方法中的array参数。在方法内部,修改了array[0]的值为100。由于arr和array都指向同一块内存地址,所以对array的修改也会影响到arr数组的值。

需要注意的是,虽然Java中使用引用传递时,传递的是引用的值(即内存地址),但这并不意味着可以通过修改参数的引用来改变原始变量的引用。例如,将一个对象类型的参数指向新对象,不会改变原始变量指向的对象。

综上所述,Java中的函数参数传递方式可以通过值传递和引用传递来实现。对于基本数据类型,采用值传递,对于对象类型,采用引用传递。