2010-09-07 59 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

顯然的條款(如在評論你的問題說明)和「按引用調用」「按引用傳遞」意思是一樣的。

相關問題