Java中参数传递机制

本文深入探讨了Java中参数传递的机制,包括值传递和引用传递的区别,通过具体示例解释了实参和形参的概念,以及它们在方法调用过程中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Java中参数传递机制

方法如下:

public static void main(String[]args){

	int a=1;
	int b=2;
	System.out.println(a);
	System.out.println(b);
	change(a,b);
	System.out.println(a);
	System.out.println(b);
}
public static void change(int a,int b){
    a=a+b;
    b=b+a;
}

输出结果为

1

2

1

2

这是Java中参数传递机制的问题。

先给大家介绍一下形参和实参

形参:用于接收调用该方法时传递的参数,只有在被调用的时候才分配内存,一但调用结束,就释放内存空间,因此仅仅在方法中有效。

例如:上面方法中change方法(int a,int b)就是形参。

实参:传递给调用方法的值,预先创建并赋予确定值。

例如:main方法中的int a=1 ,int b = 2,其中的a,b就是实参。

方法中的参数传递又分为值传递调用,引用传递调用。

值传递调用:传值调用的参数为基础数据类型,参数视为形参。

在上面方法调用中,实际上传给change方法中的是1,2这两个值,并不是数据在内存中的引用地址,并且被视为形参,所以在change方法调用之后,a,b两个值就以及被销毁了,仅在该方法中有效。而输出的值是main方法中的a,b。

引用传递调用:传值调用的参数为对象在内存中的引用地址,在方法的调用中,实参的地址传给了形参,形参的改变都发生在了实参上。

例如:

public void static void main(String[]args){
	int [] array = {1,2,3};
    System.out.println(array[0]);
    change(array);
    System.out.println(array[0]);
}
public void change(int[]array){
    array[0]=100;
}

输出结果为:

1

100

这里面发生的就是引用传递调用:在内存中传递的实际上是array数组的引用地址,类似“[I@1b6d3586”这样的形式,而change方法中改变的值,就是该引用地址引用的数组的值。所以输出结果为1,100.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值