java中方法调用参数的值传递

java中方法调用,参数传递是值传递还是引传递?
1、值传递
将实参拷贝一份,然后传给形参,在被调用的方法中修改形参,不会影响调用方的参数
2、引用传递
将实际参数的引用传给形参,在被调用的方法中修改引用对应对象的值,会影响调用方的参数
那么综上,值传递与引用传递的本质区别是,传递参数,是否会创建参数副本,创建副本是值传递,否则是引用传递
在这里插入图片描述
这里我们举一个形象的例子。再深入理解一下值传递和引用传递:
你有一把钥匙,当你朋友想要去你家的时候,如果你直接把你的钥匙给他了,这就是
引用传递。这种情况下,如果他对这把钥匙做了什么事情,比如他在钥匙上刻下了自己名字,
那么这把钥匙还给你的时候,你自己的钥匙上也会多出他刻的名字;当你的朋友想要去你家的时候,你复刻了一把新钥匙给他,自己的还在
自己手里,这就是值传递。这种情况下,他对这把钥匙做什么都不会影响你手里的这把钥匙。
而java中只有值传递,特别说明,对于引用类型(是一种特殊的值传递),传递的值的内容是复制的引用地址,与原地址都指向同一个对象
在 《The Java™ Tutorials》中,是有关于这部分内容的说明的。首先基本类型描述如下:
Primitive arguments, such as an int or a double, are passed into
methods by value. This means that any changes to the values of the para
meters exist only within the scope of the method. When the method returns, the parameters are gone and any changes to them are lost.
即原始参数通过值传递给方法。这意味着对参数值的任何更改都只存在于方法的范围内。当方法返回时,参数将消失,对它们的任何更改都将丢失。
对象传递的描述如下:
Reference data type parameters, such as objects, are also passed into
methods by value. This means that when the method returns, the passed -in reference still references the same object as before. However, the
values of the object’s fields can be changed in the method, if they have
the .
就是说,引用数据类型参数(如对象)也按值传递给方法。这意味着,当方法返回时,传入的引用仍然引用与以前相同的对象。但是,如果对象字段具有适当的访问级别,则可以在方法中更改这些字段的值。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值