java中参数传递方式
一天我在网上写了一个参数传递的简单例子,结果有一个人说我错了,在JAVA中只有值传递,没有引用传递这个概念,我就有点郁闷了。想在这里请求大家。...
一天我在网上写了一个参数传递的简单例子,结果有一个人说我错了,在JAVA中只有值传递,没有引用传递这个概念,我就有点郁闷了。想在这里请求大家。
展开
5个回答
推荐于2017-10-10 · 知道合伙人互联网行家
关注
展开全部
在 Java 应用程序中永远不会传递对象,而只传递对象引用。因此是按引用传递对象。Java应用程序按引用传递对象这一事实并不意味着 Java 应用程序按引用传递参数。参数可以是对象引用,而 Java 应用程序是按值传递对象引用的。
对象是按引用传递的;
Java 应用程序有且仅有的一种参数传递机制,即按值传递;
按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本;
按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。
Java 应用程序中的变量可以为以下两种类型之一:引用类型或基本类型。当作为参数传递给一个方法时,处理这两种类型的方式是相同的。两种类型都是按值传递的;没有一种按引用传递。
注:参数是按值而不是按引用传递的,说明 Java 应用程序有且仅有的一种参数传递机制,即按值传递。
展开全部
java也有人说有传递引用的概念.但和传统的引用传递不一样。
Java中一切都是值传递。你可以通过方法来改变被引用的对象中的属性值,却无法改变这个对象引用(Object reference)本身.也就是当一个对象的实例被创建的时候,like this: Apple a = new Apple(); a 存的就是这个对象实例的地址。而这个地址,也就是a的值作为参数传到某个函数中的时候,a本身是不会改变的。
所以说java中的都是按值传递
Java中一切都是值传递。你可以通过方法来改变被引用的对象中的属性值,却无法改变这个对象引用(Object reference)本身.也就是当一个对象的实例被创建的时候,like this: Apple a = new Apple(); a 存的就是这个对象实例的地址。而这个地址,也就是a的值作为参数传到某个函数中的时候,a本身是不会改变的。
所以说java中的都是按值传递
参考资料: http://www.21tx.com/dev/2004/07/08/10855.html
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递? 是值传递。Java 编程语言只由值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java只有一种参数传递方式:值传递!
真正的引用传递(pass
by
reference)是指当引元传递给函数时,被调用的函数获得的是对原值的引用,而非原值的副本。如果函数修改了参数值,那么调用代码中的值也会改变,那是因为引元和参数使用了内存中的同一块地址。
1楼说的数组,传递的是数组的引用的拷贝,而不是数组的引用。
其他几位所说的“引用传递”实际上是指“传递了引用的拷贝”,所以归根结底还是“值传递”。
真正的引用传递(pass
by
reference)是指当引元传递给函数时,被调用的函数获得的是对原值的引用,而非原值的副本。如果函数修改了参数值,那么调用代码中的值也会改变,那是因为引元和参数使用了内存中的同一块地址。
1楼说的数组,传递的是数组的引用的拷贝,而不是数组的引用。
其他几位所说的“引用传递”实际上是指“传递了引用的拷贝”,所以归根结底还是“值传递”。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中的都是按值传递
Apple a = new Apple();
你在把a当做参数传进去的时候,a的值就是引用
Apple a = new Apple();
你在把a当做参数传进去的时候,a的值就是引用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询