有可能超载主方法吗?

有可能超载主方法吗? 如果是,jvm将从哪个方法开始执行?

是。 main方法可以像Java中的任何其他方法一样重载。

主要的通常声明是

public static void main(String[] args) throws Exception; 

当您启动Java应用程序时,它会查找名为“ main ”的静态方法,返回类型“ void'以及字符串数组的单个参数。 即你抛出的东西在解决这个方法上并不重要。

重载提供了多个具有相同名称但不同参数的方法(可能还有返回类型)。

通过上述解释,我们可以重载主要方法。

您可以重载main方法,但JVM始终使用以下签名启动main方法:

 public static void main(String[] args); 

正如其他人所说,非常可能但是,执行总是从开始

 public static void main(String[] args) 

一个小程序来演示:

 public class Test{ public static void main(String [] args){ System.out.println("First"); main(); } public static void main(){ System.out.println("Second"); } } 

输出:

第一
第二

是。 您可以重载main方法,但执行该类时将执行以下方法:

 public static void main(String[] args) 

根据Java语言规范:

方法main必须声明为public,static和void。 它必须接受一个字符串数组的参数。

http://java.sun.com/docs/books/jls/third_edition/html/execution.html(12.1.4

因此,只会执行重载的public static void main(String[] args)

以String作为参数的main方法是程序的默认入口点。 您可以重载但不会更改程序的入口点。

是的你可以。 jvm足够聪明,可以知道哪个加载,因为它查看与main方法匹配且符合逻辑的方法声明。 当您想到’jvm’并描绘main方法的作用(启动应用程序)时,主方法声明的各个部分非常有意义:

  • public ,因为jvm必须可以访问此方法(不是由您编写的)。
  • static ,暗示这个方法可以在没有对象的情况下访问(因为它的表示永远不会改变),但是如果你再次像jvm那样思考逻辑很容易理解; “我没有任何对象来创建(实例化)对象,所以我需要一个静态方法来启动应用程序,因为根本没有任何逻辑方法来获取特定于实例的方法,因为我没有任何东西尚未创造对象“。
  • void此方法无法在逻辑上返回任何内容,因为还没有任何内容可以返回任何内容。 这是应用程序的起点。
  • main我是主要方法,因为没有我你将没有申请。
  • String[] args我发送您可能对我的启动有用的数据。