代码之家  ›  专栏  ›  技术社区  ›  LB40

Java中的动态范围变量?(a.k.a每个方法执行一个变量)

  •  0
  • LB40  · 技术社区  · 15 年前

    我想知道在Java中是否可以声明一个变量本地来执行该方法。

    例如,如果我正在做一些递归的工作,并且我想保持各种计数器特定于方法的一个特定的执行。

    我不知道正确的英语表达…

    4 回复  |  直到 15 年前
        1
  •  6
  •   Ed Swangren    15 年前
    void method()
    {
         int i = 0;  // this int is local to 'method'
    }
    
        2
  •  5
  •   Mike Clark    15 年前

    这就是Java默认工作的方式。例如,在以下方法中:

    void recursive(int i) {
      int localI = 6;
      i-= 1;
      if (i > 0) {
        recursive(i);
      }
    

    locali将保持方法当前执行的本地。

        3
  •  1
  •   Jesper    15 年前

    方法中的一个普通的局部变量正是您所指的。这些局部变量是在堆栈上分配的。每次调用方法时,无论是否以递归方式调用,都会创建变量的新副本。

        4
  •  -2
  •   Itsik    15 年前

    我想你可能在说 static 变量。 如果您声明一个静态变量,它将在方法的执行之间保存它的值。