是否可以重载主方法?

时间:2010-01-01 07:22:50

标签: java

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

7 个答案:

答案 0 :(得分:5)

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

public static void main(String[] args);

答案 1 :(得分:5)

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

开始
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");   
    }
}

输出:

First
Second

答案 2 :(得分:2)

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

main的通常声明是

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

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

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

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

答案 3 :(得分:1)

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

public static void main(String[] args)

答案 4 :(得分:0)

根据Java语言规范:

  

必须声明方法main   公共,静态和无效。它必须   接受一个单一的参数   字符串数组。

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

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

答案 5 :(得分:0)

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

答案 6 :(得分:-1)

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

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