2010-09-07 61 views
6

在java中传递引用和引用引用有什么区别?传递引用和引用引用有什么区别?

+2

“通行证” 和 “呼” 是不同的东西,而不是不同版本的同一件事。你的意思是“通过参考”和“按价值传递”? – 2010-09-07 15:41:57

+2

@Jim Garrison--显然“引用引用”是通过引用传递的同义词,或者[Wikipedia](http://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_reference)所说的。 – 2010-09-07 15:43:33

+0

@理查德 - 如果你做出这个答案,我会赶上它。 – StriplingWarrior 2010-09-07 15:48:39

回答

9

Java不会通过引用传递任何变量。

很容易想到在Java中通过引用传递对象 - 但这是有害的。对象类型的变量是引用。一旦通过,它们就会通过价值传递。

在其他语言中,传递引用和引用引用是同一件事。

编辑:的更多细节在现有计算器问题"Is Java pass by reference?"(扰流板:号公报)提供

+0

是不是通过引用传递的对象? – 2010-09-07 15:41:07

+1

从技术上讲,它们是通过价值传递的,但它们的价值是一个参考。如果你将一个Object'foo'传递给一个方法,然后说'foo = new Object()',那么传递给该方法的调用方法的变量将保持不变。 – StriplingWarrior 2010-09-07 15:43:12

+1

在java中,所有东西都是按值传递的。按价值传递。按价值传递。准确地说,java引用是按值传递的。这意味着如果你有一个对象的引用,并且你将该引用传递给方法调用,那么引用a被复制到b中。现在b和指向同一个对象。 – hvgotcodes 2010-09-07 15:43:37

7

重要的概念 - Java没有的“按引用传递”的概念。 Java中的所有东西都是按值传递的。当你在一个方法调用中传递一个参数给对象时,你真正在做的是传递一个指向你的对象引用的值。

以下网址,更详细地解释: http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.htmlhttp://javadude.com/articles/passbyvalue.htm?repost

显然的条款(如在评论你的问题说明)和“按引用调用”“按引用传递”意思是一样的。

相关问题