在Java中,在静态方法本身内部声明的变量是静态的吗?

2022-09-02 19:58:12

假设:

private static boolean A()
{
  int parsedUntil = 0;
  ...
  ...
  ...
}

ParsedUntil 是否被视为静态变量?我注意到我不能在这个静态函数中将其声明为静态。

后续问题:我读到静态变量只会初始化一次。这是否意味着我第一次调用函数A()时,该值将设置为零,但每隔一次我调用A()时,该行将被省略?


答案 1

不,它不是静态变量。它是一个局部变量。方法中声明的任何变量都是局部变量。如果你想要一个静态变量,你必须在方法之外声明它:

private static int parsedUntil = 0;

没有办法声明只能在单个方法中使用的静态变量。


答案 2

no,是一个静态方法,并且是 A 内部的局部变量。A()parsedUntil

像这样的修饰符在局部变量中无效(只允许 afaik)staticfinal

后续问题:我读到静态变量只会初始化一次。

这是否意味着我第一次调用函数A()时,该值将设置为零,但每隔一次我调用A()时,该行将被省略?

由于parsedUntil不是静态字段,而是静态方法中的局部变量,因此情况并非如此。


推荐