如何在Main方法中声明静态变量?

Pri*_*iti 6 java static-variables

我们可以StaticMain方法中声明变量吗?因为我收到一条错误消息:

Illegal Start of Expression
Run Code Online (Sandbox Code Playgroud)

Rom*_*man 29

显然,不,我们不能.

在Java中,static意味着它是类的变量/方法,它属于整个类,但不属于某个特定对象之一.

这意味着static关键字只能在"类范围"中使用,即它在方法内部没有任何意义.

  • 好的,得到了​​.我只是说在内部方法中也是有意义的.就这样 (3认同)
  • 它可能具有它在C函数中的含义...来自维基百科:"静态局部变量:在函数内部声明为静态的变量是静态分配的,同时具有与自动局部变量相同的范围.因此函数放入其中的任何值当再次调用该函数时,一次调用期间的静态局部变量仍然存在." (2认同)

Mat*_*rog 6

您可以在main方法(或任何其他方法)中使用静态变量,但是您需要在类中声明它们:

这很好:

public Class YourClass {
  static int someNumber = 5;

  public static void main(String[] args) {
    System.out.println(someNumber);
  }
}
Run Code Online (Sandbox Code Playgroud)

这也没关系,但在这种情况下,someNumber是局部变量,而不是静态变量.

public Class YourClass {

  public static void main(String[] args) {
    int someNumber = 5;
    System.out.println(someNumber);
  }
}
Run Code Online (Sandbox Code Playgroud)


小智 6

因为静态变量在类加载时被分配内存,并且内存只分配一次.现在如果在方法中有静态变量,那么该变量属于方法的范围,而不是类的范围,并且JVM无法为它分配内存,因为一个方法是在类的对象的帮助下调用的,那是在运行时,而不是在类加载时.