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

Java函数参数传递:实例教程

发布时间:2023-06-15 22:34:38

Java函数参数传递是实现函数间参数传递的基本方式,也是Java语言编程的重要组成部分。在Java编程中,函数参数传递有以下三种方式:按“值传递”、按“引用传递”、按“内存地址传递”。

按值传递

按值传递就是将函数实参的值复制一份后传递给函数形参。这种方式传递参数的时候,实参在函数内部的值会被拷贝到函数参数中,在函数内部对参数的修改不会影响到实参的值。我们来看一个简单的例子:

public class TestDemo {
    public static void main(String[] args) {
        int num = 10;
        changeValue(num);
        System.out.println("num = " + num);
    }

    public static void changeValue(int value) {
        value = value * 2;
        System.out.println("value = " + value);
    }
}

以上代码输出结果为:value = 20,num = 10。这是因为我们在 changeValue 函数中修改了 value 参数的值,但是并没有影响到 num 变量的值。

按引用传递

按引用传递就是将函数实参的地址传递给函数形参。这种方式传递参数的时候,实参和形参都指向同一个对象,在函数内部对形参所指向的对象的操作会影响到实参所指向的对象。我们来看一个简单的例子:

public class TestDemo {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("hello");
        changeValue(sb);
        System.out.println("sb = " + sb);
    }

    public static void changeValue(StringBuffer value) {
        value.append(" world");
        System.out.println("value = " + value);
    }
}

以上代码输出结果为:value = hello world,sb = hello world。这是因为我们在 changeValue 函数中修改了 value 参数所指向的对象的值,实际上就是修改了 sb 变量所指向的对象的值,所以最终输出结果也是修改后的值。

按内存地址传递

按内存地址传递是指将函数实参所占据的内存地址传递给函数形参,在函数内部对形参所指向的内存地址进行操作会影响到实参所指向的内存地址。这种方式传递参数的时候,实参和形参都指向同一个内存地址,所以在函数内部对参数的修改会影响到实参的值。但是在Java中,并没有直接提供传递内存地址的方式,因为一般不会涉及到这种操作。

总结

在Java中,按值传递和按引用传递是最常用的参数传递方式,按内存地址传递不常用。简单来说,按值传递是传递参数的值的副本,按引用传递是传递对象的引用,实参和形参共享同一块内存,按内存地址传递是传递内存地址,但在Java中不常用。在编写Java程序的时候,根据实际需要来选择不同的参数传递方式。