请问:JAVA中对象作为参数,是按值传递,还是按地址传递???
5个回答
展开全部
其实这个问题是很简单的,但是答案好像一直有争议.
其实争议的内容我认为只是玩文字游戏而已.
举个例子:
Object obj = new Object();
XXXX.xxxx(obj);
大家都知道,xxxx方法改为了通过调用obj的方法改变了内容后,obj对象的内容也会发生改变,从其它语言(比如VB)的角度来看,这就是按地址传递.
但为什么有人说是按值传递呢?他们是这样认为的:第1句代码中,对象创建后obj的值实际上是一个整形的内存地址(如:1234),当它作为参数进行传递时,XXXX对象会创建一个整形变量接受"1234"的值,所以是按值传递(准确的说法是:传递的是对象的引用的值).
双方对整个过程的工作原理都是没有异议的,答案不同只是文字游戏而已.
其实争议的内容我认为只是玩文字游戏而已.
举个例子:
Object obj = new Object();
XXXX.xxxx(obj);
大家都知道,xxxx方法改为了通过调用obj的方法改变了内容后,obj对象的内容也会发生改变,从其它语言(比如VB)的角度来看,这就是按地址传递.
但为什么有人说是按值传递呢?他们是这样认为的:第1句代码中,对象创建后obj的值实际上是一个整形的内存地址(如:1234),当它作为参数进行传递时,XXXX对象会创建一个整形变量接受"1234"的值,所以是按值传递(准确的说法是:传递的是对象的引用的值).
双方对整个过程的工作原理都是没有异议的,答案不同只是文字游戏而已.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在java中对象作为参数,一样也是值传递,只不过传过去的是对象的引用的值。
其实java中的引用就相当于c语言里的指针的作用,只要学过c语言,知道了数值在内存中的存放方式就不难理解了。
其实java中的引用就相当于c语言里的指针的作用,只要学过c语言,知道了数值在内存中的存放方式就不难理解了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中的基本类型和string是传递了一份参数的拷贝
其他的则是传递了对象的地址的拷贝。
其他的则是传递了对象的地址的拷贝。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
地址
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询