通过引用传递和java中的引用调用有什么区别?
答案 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.html和 http://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