在java中什么是参数传递机制

 我来答
百度网友1fcf34c73
2013-04-30 · TA获得超过865个赞
知道小有建树答主
回答量:400
采纳率:100%
帮助的人:449万
展开全部
参数传递,就是方法调用过程中,调用者将参数传递给被调用者的过程。

其实Java中的所有参数传递,传递的都是一样的,参数直接引用值的复制体。

1. 只是对于Java基础类型(int、long、float等等),参数的引用里面包含的就是它们的值,因此是值传递,在被调用的方法内改变它们的值,不会影响调用者。

2. 对于其他对象,引用里面包含的实际是参数对象的地址,也叫引用传递,在被调用的方法内改变它们的值,当然会影响调用者。

3. 对于像String这样的不变类,参数传递的过程中,与第2点类似,是引用传递;但是当被调方法修改不变类的值的时候,其实是新建了一个另外的对象,那么当然也不会影响被调用者。

这里面的区别就在于,对于基础类型,Java的存储方式是 引用-》值,对于其他对象,Java的存储方式是 引用-》地址-》值(其中的值可能是基础类型或其他对象)。
Kmars1985
2013-04-29 · TA获得超过1172个赞
知道小有建树答主
回答量:554
采纳率:0%
帮助的人:387万
展开全部
Java参数,不管是原始类型还是引用类型,传递的都是副本(java传参是传引用还是传值,网上争论很多)
如果参数类型是原始类型,那么传过来的就是这个参数的一个副本,也就是这个原始参数的值,这个跟之前所谈的传值是一样的。如果在函数中改变了副本的值不会改变原始的值.
如果参数类型是引用类型,那么传过来的就是这个引用参数的副本,这个副本存放的是参数的地址。如果在函数中没有改变这个副本的地址,而是通过地址改变改变了地址指向的值,那么在函数内的改变会影响到传入的参数。
如果在函数中改变了副本的地址,如当执行如a=其他对象,a=new等赋值操作时,实际上是将a指向新的位置,那么函数外的原值不改变。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lornwolf
2013-05-01
知道答主
回答量:89
采纳率:0%
帮助的人:23.7万
展开全部
普通变量是值传递,对象是引用传递。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式