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

时间:2009-10-08 21:06:20

标签: java recursion scoping

我想知道在java中是否可以为方法的执行声明一个本地变量。

例如,如果我正在做一些递归的东西,我想保留各种特定于该方法的特定执行的计数器。

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

4 个答案:

答案 0 :(得分:6)

void method()
{
     int i = 0;  // this int is local to 'method'
}

答案 1 :(得分:5)

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

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:-2)

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

相关问题