java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java形参与实参

java中的形参与实参的区别对比解析

作者:上78将

文章讲述了Java中形参和实参的区别,包括定义位置、作用阶段、内存分配和示例说明,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧

一、主体不同

1、实参:在调用有参函数时,函数名后面括号中的参数为“实际参数”。

2、形参:不是实际存在变量,又称虚拟变量。

二、目的不同

1、实参:可以是常量、变量或表达式,无论实参是何种类型的量,才进行函数调用时,都必须具有确定的值,以便把这些值传递给形参。

2、形参:定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。

三、特点不同

1、实参:在调用函数过程中,系统会把实参的值传递给被调用函数的形参。或者说,形参从实参得到一个值。值在函数调用期间有效,可以参加该函数中的运算。

2、形参:形参的本质是一个名字,不占用内存空间。

形参与实参的概念

形参(形式参数)是方法定义时声明的参数,用于接收调用时传入的值。形参属于方法的局部变量,作用域仅限于方法内部。

实参(实际参数)是调用方法时传递给形参的具体值或变量,可以是常量、变量或表达式。

主要区别

定义位置不同
形参出现在方法声明中,例如:

public void print(int num) { ... }  // num是形参

实参出现在方法调用时,例如:

print(10);  // 10是实参

作用阶段不同
形参在方法定义阶段声明,用于描述方法需要的数据类型和名称。
实参在方法调用阶段传递,为形参提供具体的值。

内存分配不同
形参在方法被调用时分配内存(栈内存),方法结束后释放。
实参可以是已存在的变量或常量,其内存分配与形参无关。

示例说明

public class Example {
    // 形参:a和b
    public static int add(int a, int b) {
        return a + b;
    }
    public static void main(String[] args) {
        int x = 5, y = 3;
        // 实参:x和y
        int result = add(x, y);
        System.out.println(result);  // 输出8
    }
}

注意事项

值传递与引用传递的区别

值传递示例(基本数据类型)

public static void change(int num) {
    num = 100;
}
public static void main(String[] args) {
    int a = 10;
    change(a);
    System.out.println(a);  // 输出10(未改变)
}

引用传递示例(对象类型)

public static void modifyArray(int[] arr) {
    arr[0] = 99;
}
public static void main(String[] args) {
    int[] array = {1, 2, 3};
    modifyArray(array);
    System.out.println(array[0]);  // 输出99(已改变)
}

形参与实参的概念

形参(形式参数)是方法定义时声明的参数,用于接收调用时传入的值。形参属于方法的局部变量,作用域仅限于方法内部。

实参(实际参数)是调用方法时传递给形参的具体值或变量,可以是常量、变量或表达式。

主要区别

定义位置不同
形参出现在方法声明中,例如:

public void print(int num) { ... }  // num是形参

实参出现在方法调用时,例如:

print(10);  // 10是实参

作用阶段不同
形参在方法定义阶段声明,用于描述方法需要的数据类型和名称。
实参在方法调用阶段传递,为形参提供具体的值。

内存分配不同
形参在方法被调用时分配内存(栈内存),方法结束后释放。
实参可以是已存在的变量或常量,其内存分配与形参无关。

示例说明

public class Example {
    // 形参:a和b
    public static int add(int a, int b) {
        return a + b;
    }
    public static void main(String[] args) {
        int x = 5, y = 3;
        // 实参:x和y
        int result = add(x, y);
        System.out.println(result);  // 输出8
    }
}

注意事项

值传递与引用传递的区别

值传递示例(基本数据类型)

public static void change(int num) {
    num = 100;
}
public static void main(String[] args) {
    int a = 10;
    change(a);
    System.out.println(a);  // 输出10(未改变)
}

引用传递示例(对象类型)

public static void modifyArray(int[] arr) {
    arr[0] = 99;
}
public static void main(String[] args) {
    int[] array = {1, 2, 3};
    modifyArray(array);
    System.out.println(array[0]);  // 输出99(已改变)
}

到此这篇关于java中的形参与实参的区别的文章就介绍到这了,更多相关java形参与实参内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文