java为什么这一变量会受到影响?
这是我在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 = blabla;
来更改randomNames
变量,因此我无法理解为什么该变量会不断更改为自身的还原版本,尽管我只是将其作为参数传递
我已经编写了大约一年的程序,我对变量范围等方面的知识非常有限。谁能给我指出正确的方向吗
共 (0) 个答案