有可能超载主方法吗?
有可能超载主方法吗? 如果是,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
我发送您可能对我的启动有用的数据。