我以爲我在java中很有經驗,但事實似乎並非如此,昨天我剛剛注意到了一些我以前用過的東西,但從未真正意識到它做了什麼。我GOOGLE了,但沒有找到我的問題的答案。在java中做指針實際上是否存在?
如果我宣佈一個int數組,並使用數組的靜態排序功能進行排序我的數組,我只需要鍵入
Arrays.sort(numbers);
而不是
numbers = Array.sort(numbers);
這看起來很容易用C和C++,因爲你可以在那裏使用指針。所以我想知道的是,這是如何完成的?這是太陽優勢嗎,還是我在這裏完全沒有意義?
這並不能回答這個問題! – 2009-12-14 13:13:54
其實它確實如此。 'sort()'得到數組引用的副本。它可以根據需要重新排列陣列的*內容*(即狀態)。它*不能*創建一個新的,並將其分配給您通過的。但這不是這裏發生的事情。 – Joey 2009-12-14 13:18:29
它的確如此,但是一個更簡單的解釋是「對對象的引用被傳遞給'sort'函數,引用是被複制還是通過引用傳遞對於這個問題是無關緊要的,重要的是該函數看到的是對原始對象的引用,而不是對象的副本 – jalf 2009-12-14 14:13:33