`public static void main args`是什么意思?

Nic*_*las 5 java static program-entry-point public void

我不确定这意味着什么,每当你编写代码之前,人们都这么说

public static void main(String[] args) {
Run Code Online (Sandbox Code Playgroud)

那是什么意思?

Sai*_*ula 19

这里有一个关于为什么main方法被声明为的详细解释

public static void main(String[] args)
Run Code Online (Sandbox Code Playgroud)

主方法是Java虚拟机(JVM)的Java程序的入口点.假设我们有一个名为的课程Sample

class Sample {
     static void fun()
     {
           System.out.println("Hello");       
     }  
 }

class Test {
      public static void main(String[] args)
      {
                Sample.fun();
      }  
}
Run Code Online (Sandbox Code Playgroud)

该程序将在编译后执行java Test.该java命令将启动JVM,它将我们的Test.java类加载到内存中.由于主要是我们程序的入口点,JVM将搜索该声明为主要方法public,staticvoid.

为什么主要必须公开?

main()必须声明,public因为我们知道只要程序执行开始且JVM不属于我们的程序包,JVM就会调用它.

为了访问包外的主要部分,我们必须将其声明为public.如果我们声明它不是public它显示Run time Error但不是Compilation time error.

为什么main必须声明为static?

main()必须声明为静态,因为JVM不知道如何创建类的对象,因此需要一种标准方法来访问主方法,这可以通过声明main()static.

如果方法被声明为,static那么我们可以在类之外调用该方法,而无需使用语法创建对象ClassName.methodName();.

所以这样JVM可以调用我们的main方法 <ClassName>.<Main-Method>

为什么main必须声明为void?

main()必须声明为void,因为JVM不期望任何值main().所以,必须声明为void.

如果提供了其他返回类型,则它是一个RunTimeErrorie NoSuchMethodFoundError.

为什么main必须有String Array参数?

main()必须将String参数作为数组,因为JVM通过传递命令行参数来调用main方法.因为它们存储在字符串数组对象中,所以它作为参数传递给main().


Viv*_*tya 0

public--> 访问说明符。任何其他类都可以访问此方法。

static--> 该方法绑定到类,而不是绑定到类的实例。

void--> 返回类型。该方法不返回任何内容。

main(String[] args)--> 方法名称是main(). 它接受一个字符串数组作为参数。argsString[]是命令行参数。

注意main()上面定义的方法是程序的入口点,如果你改变了签名,那么你的程序可能无法运行。