Java执行程序时调用的第一个方法是什么?

Java执行程序时调用的第一个方法是什么?,java,Java,我正在学习核心Java,我有一个问题,“执行程序时调用的第一个方法是什么?”这将是main方法 它应该被宣布为 public static void main(String[] args) 它需要是公共的,因为JVM应该有权调用该方法 它需要是静态的,因为程序启动时没有对象被实例化 它将Strings数组作为参数(来自命令行) 以下是一些好的链接: 有些人可能会建议你写作 public static void main(String... args) 如果您使用的是1.5版或

我正在学习核心Java,我有一个问题,“执行程序时调用的第一个方法是什么?”

这将是
main
方法

它应该被宣布为

public static void main(String[] args)
  • 它需要是公共的,因为JVM应该有权调用该方法
  • 它需要是静态的,因为程序启动时没有对象被实例化
  • 它将
    String
    s数组作为参数(来自命令行)
以下是一些好的链接:


有些人可能会建议你写作

public static void main(String... args)
如果您使用的是1.5版或更高版本的编译器,则这相当于
String[]args
。(我不鼓励这样做,除非您使用不同数量的参数在内部大量调用
main
方法。)

其他人可能会建议

public static void main(String args[])

这也是等效的,但被作为
main
方法的。

所阻止

它应该被宣布为

public static void main(String[] args)
  • 它需要是公共的,因为JVM应该有权调用该方法
  • 它需要是静态的,因为程序启动时没有对象被实例化
  • 它将
    String
    s数组作为参数(来自命令行)
以下是一些好的链接:


有些人可能会建议你写作

public static void main(String... args)
如果您使用的是1.5版或更高版本的编译器,则这相当于
String[]args
。(我不鼓励这样做,除非您使用不同数量的参数在内部大量调用
main
方法。)

其他人可能会建议

public static void main(String args[])
这也是相当的,但受到了政府的阻挠

Java程序从main方法开始执行,该方法具有以下方法标题:

public static void main(String[] args)
public static void main(String... args) //java 1.5+
public static void main(String args[])

Java程序从main方法开始执行,该方法具有以下方法标题:

public static void main(String[] args)
public static void main(String... args) //java 1.5+
public static void main(String args[])

除了aioobes答案之外

启动简单java程序的一种常见方法是执行如下java:

java com.example.MyClass
com.example.MyClass
(或您的完全限定类名)需要一个具有此签名的主方法:

public static void main(String[] args)

(只允许更改参数的名称,如
参数
,而不是
参数
)。虚拟机将尝试加载命名类并尝试调用此静态方法,该方法将“启动Java程序”。

除了aioobes应答之外

启动简单java程序的一种常见方法是执行如下java:

java com.example.MyClass
com.example.MyClass
(或您的完全限定类名)需要一个具有此签名的主方法:

public static void main(String[] args)

(只允许更改参数的名称,如
参数
,而不是
参数
)。虚拟机将尝试加载命名类并尝试调用此静态方法,该方法将“启动Java程序”。

它通常是main。但在这个项目中,它是痛苦的:

public class WhatThe {
    public static final int x = pain();
    public static int pain() {
        System.out.println("pain!");
        return 0;
    }
    public static void main(String[] args) {
        System.out.println("main");
    }
}
正如这一点:

public class WhatThe {
    static {
        pain();
    }
    public static void pain() {
        System.out.println("pain!");
    }
    public static void main(String[] args) {
        System.out.println("main");
    }
}

这不太可能是有用的知识,但需要注意。

这通常是主要的。但在这个项目中,它是痛苦的:

public class WhatThe {
    public static final int x = pain();
    public static int pain() {
        System.out.println("pain!");
        return 0;
    }
    public static void main(String[] args) {
        System.out.println("main");
    }
}
正如这一点:

public class WhatThe {
    static {
        pain();
    }
    public static void pain() {
        System.out.println("pain!");
    }
    public static void main(String[] args) {
        System.out.println("main");
    }
}

这不太可能是有用的知识,但需要注意。

将首先调用main方法,控件首先转到main方法,该方法具有以下方法标题: 公共静态void main(字符串[]args)或
publicstaticvoidmain(字符串args[])

将首先调用main方法,控件首先转到main方法,该方法具有以下方法标题: 公共静态void main(字符串[]args)或
public static void main(String args[])

您错过了var arg版本的main check我的答案您错过了var arg版本的main check我的答案请注意
String…
仅适用于Java 1.5+。另外,Java编码惯例不鼓励使用
String args[]
语法。另外,Java编码约定不鼓励使用
字符串args[]
语法。只有成功调用main()方法时,才会首先调用包含main的类的静态initisalizer。只有成功调用main()方法时,才会首先调用包含main的类的静态initisalizer方法被调用。