2013-03-18 49 views
-2

爲什麼java不支持通過引用? 是否有任何具體的原因呢?*爲什麼Java純粹通過價值?

+1

你能舉一個例子/文檔說這個嗎? – 2013-03-18 07:11:31

+0

@SnakesandCoffee - 說什麼? Java使用純粹通過價值?嘗試鏈接的問題開始。或者Java教程。或任何一半體面的Java教科書。或者如果這對你來說還不夠明確,試試JLS。 – 2013-03-19 00:36:19

+0

@StephenC我的評論發佈之前很久沒有添加鏈接 – 2013-03-19 01:09:41

回答

4

爲什麼java不支持通過引用?

Java is indeed pass-by-value。但是,您仍然可以將對象引用傳遞給方法。即使引用是按值傳遞的,但總體效果幾乎與傳引用無法區分。

不支持的是對基本類型的引用。

+0

+1爲'總體'效應陳述。我無法形成一個連貫的句子,可以告訴我想告訴我什麼 – 2013-03-18 07:16:02

+1

「整體效果與傳引用無法區分」當然不是。這是非常明顯的 - 通過引用傳遞,您可以隨時在函數內部分配一個引用參數,並且它會執行相同的操作,就像您爲傳入的變量賦值(即用'=')調用範圍。這是你無法用像Java這樣的按價值傳遞語言來做的事情。 – newacct 2013-03-18 18:55:31

+0

@newacct:這取決於語言。舉例來說,C++具有傳遞引用的功能,但沒有您所概述的語義(通過「分配給引用」,我假設您將引用重新綁定到不同的對象)。 – NPE 2013-03-18 20:02:26

0

其實在Java中的一切是按值傳遞。

當你說對象通過引用傳遞時,這意味着對象引用是通過值傳遞的。

這基本上是由Java設計人員做出的一個設計決策,它使語言變得簡單,代碼更易於調試。