有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案