可以重载主方法吗?如果是,jvm将从哪个方法开始执行?
答案 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
向我发送您可能对我的启动有用的数据。