這是我在StackOverflow的第一個問題。這是有問題的代碼:爲什麼這一個變量受到影響?
public class ListStuff {
public static void main(String [] args) {
String[] randomNames = {"Herbie", "Jaco", "Pat", "Michael"};
String[] reversedNames = revertNames(randomNames);
for (int i = 0; i < reversedNames.length; i++) {
System.out.println(reversedNames[i]);
}
}
public static String[] revertNames(String[] s) {
for (int i = 0; i < s.length/2; i++) {
String tmp = s[s.length - 1 - i];
s[s.length - 1 - i] = s[i];
s[i] = tmp;
}
return s;
}
}
此代碼運行正常和reversedNames
可變打印爲恢復;沒有抱怨。但是,我的主要擔心是,當我執行String[] reversedNames = revertNames(randomNames);
時,變量randomNames
也會恢復。我在任何地方都沒有改變randomNames
變量與randomNames = blabla;
,所以我不明白爲什麼該變量不斷變爲自己的恢復版本,即使我只是將它作爲參數傳遞。
我已經編程了大約一年,而且我對變量範圍的瞭解非常有限。任何人都可以將我指向正確的方向嗎?
爲什麼downvote? – mc10 2011-12-23 22:48:46
哇。有史以來最快的反應,偉大的阿夫斯傢伙,我會研究這個和變化=) – user1114051 2011-12-23 22:54:05
我改變了我的投票現在...最初的反應沒有提供任何洞察力的問題。 +1 – 2011-12-23 23:04:09