java新手关于基本参数传参和引用变量传参的区别

java新手关于基本参数传参和引用变量传参的区别在传int的时候,变量互换之后,成员变量xy的值没有变,还是x=1y=2,但是引用参数数组的时候,交换值之后,成员变量的值... java新手关于基本参数传参和引用变量传参的区别在传int 的时候,变量互换之后,成员变量xy的值没有变,还是x=1 y=2,但是引用参数数组的时候,交换值之后,成员变量的值也变了是为啥。 展开
 我来答
百度网友324204d
2017-04-11 · TA获得超过648个赞
知道小有建树答主
回答量:380
采纳率:85%
帮助的人:294万
展开全部

要解决这个问题,首先你必须得理解两个概念。

值传递:在具体的实参传递到方法中定义的形参的时候,传递的是值的拷贝,也就是复制一份来的值,这样就有个两个值,在方法内部对参数进行处理的时候,实际上是处理的那个拷贝后的值,而原来的值更本没有改变,因此就不会动。

引用传递:在具体的实参传递到方法定义的形参的时候,传递的是引用的地址的拷贝,也就是对象在堆中的地址,这样的话指针指向实际对象的值是同一个,也就是你传递了引用,其实也就改变了对象本身。

ps:也有一种说法是引用传递也是值传递,其实是不同的说法,本质上都是一样的。

数组都是引用数据类型,因此属于引用传递。也就是说他们传递的过程会对值本身产生变化,而int是基本数据类型,属于值传递,传递前后参数和原始值没有任何关系,所以值不会发生变化。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式