黑马程序员技术交流社区

标题: Java 是如何传递参数的 [打印本页]

作者: 邵中国    时间: 2012-3-23 16:40
标题: Java 是如何传递参数的
到底 Java 是如何传递参数的?是by value或by reference
求正解
作者: 刘元霄    时间: 2012-3-23 16:41
这个问题比较深奥! 做个沙发玩玩吧!
作者: 罗闯    时间: 2012-3-23 17:24
首先你需要明白java中是不存在传递引用一说的,都是传递的值(by value)。
其次另个概念:
值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参数的值。
引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。

最后:对于基本数据类型,int long这些,传递的就是值本身,所以是值传递
对于对象引用类型,参数传递时传递的不是对象本身,也不是对象指针,而是对象在内存中位置的一个引用,这个应用本质上就是一个值,只不过底层会根据这个值找到对象。所以无论哪种数据类型,从java层面来看其本质都是值传递 。

希望能帮到你



作者: 周建    时间: 2012-3-23 17:43
对于基本数据类型,是将值复制一份传递过去,如 int a=9,a=b;类类型之间的传递是通过复制地址值,两个类类型的变量都在自己的内存空间里存一个地址值,且这两个地址值相同,即两个变量指向同一个对象,如String s1="abc",s2="abc";
作者: 邵中国    时间: 2012-3-24 15:52
原来如此




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2