Java值传递与地址传递

值传递与地址传递

Ⅰ.值传递
  • 这种方式使用变量、常量、数组元素作为函数参数,实际是将实参的值复制到形参相应的存储单元中,即形参和实参分别占用不同的存储单元,这种传递方式称为“参数的值传递”或者“函数的传值调用”。
  • 值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参,在调用结束后,形参的存储单元被释放,而形参值的任何变化都不会影响到实参的值,实参的存储单元仍保留并维持数值不变。

值传递是指在调用函数时将实际参数复制 一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。

public class Test 
{

	public static void main(String[] args) 
	{		
		String name = "FOREVER_GWC";
		test(name);
		System.out.println(name);	 
	}
	public static void test(String identify) 
	{
		identify = "forever_gwc";
	}
}

输出结果:

FOREVER_GWC
Ⅱ.地址传递
  • 这种方式使用数组名或者指针作为函数参数,传递的是该数组的首地址或指针的值,而形参接收到的是地址,即指向实参的存储单元,形参和实参占用相同的存储单元,这种传递方式称为“参数的地址传递”。
  • 地址传递的特点是形参并不存在存储空间,编译系统不为形参数组分配内存。数组名或指针就是一组连续空间的首地址。因此在数组名或指针作函数参数时所进行的传送只是地址传送,形参在取得该首地址之后,与实参共同拥有一段内存空间,形参的变化也就是实参的变化。
Ⅲ.引用传递
  • 引用传递是指在调用函数时将实际参数的地址 直接 传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。
public class Test 
{
	public static void main(String[] args) 
	{
		String name[]= {"FOREVER_GWC"};
		test(name);
		System.out.println(name[0]); 
	}
	public static void test(String identify[]) 
	{
		identify[0] = "GWC";
	}
}

输出结果:

GWC
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值