通过引用传递和通过引用调用之间有什么区别?

时间:2010-09-07 15:38:09

标签: java

通过引用传递和java中的引用调用有什么区别?

3 个答案:

答案 0 :(得分:10)

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

很容易想到在Java中通过引用传递对象 - 但有害。对象类型的变量是引用。传递时,它们按值传递。

在其他语言中,pass-by-reference和call-by-reference是一回事。

编辑:现有的stackoverflow问题"Is Java pass by reference?"(Spoiler:No。)中提供了更多详细信息

答案 1 :(得分:7)

重要概念 - Java没有“通过引用传递”的概念。 Java中的所有内容都是按值传递的。当您在方法调用中将对象引用传递给参数时,您实际上正在做的是传递一个指向对象引用的值。

以下网址更详细地说明了这一点: http://www.javaworld.com/javaworld/javaqa/2000-05/03-qa-0526-pass.htmlhttp://javadude.com/articles/passbyvalue.htm?repost

显然(如您对问题的评论中所述),“通过引用传递”和“通过引用调用”这两个术语的含义相同。

答案 2 :(得分:1)

你问,但是“通过引用传递”和“通过引用调用”是一回事。

如果您正在寻找传递参考和传递值之间的区别,请检查

的答案

Pass by reference or pass by value?

但请记住,Java会按值传递参数。

http://javadude.com/articles/passbyvalue.htm

http://academic.regis.edu/dbahr/GeneralPages/IntroToProgramming/JavaPassByValue.htm