[java]关于main函数的执行先后顺序

时间:2021-04-12 20:21:41
package exercise5;

//整个文件的类名是E20
//创建一个使用可变参数列表而不是普通的main()语法的main()。
//打印所产生的args数组的所有元素,并用各种不同数量的命令行参数来测试它

class InvolveMain{
 static void  main(String...args){    //如果写成public static void?
for(String a:args)
System.out.print(a+" ");
System.out.println();
}
}

public class E20 {
public static void main(String[] args){
InvolveMain.main("lal","lalaa","dfsdf");
}
}




在这个文件在执行的时候先执行那个呢?,如果把InvolveMain类里的方法写成注释后面的又先执行哪个呢?
求详细解释一下,谢谢谢谢。

4 个解决方案

#1


不明白什么意思,程序启动肯定是执行E20的main方法了。

#2


E20 的main方法是程序的主入口,进入之后才调用InvolveMain类的 main方法,不管你是否把InvolveMain类main方法的权限public,一个程序都只有一个主入口吧,所以jvm是肯定先找到E20的main..

#3


JVM会找和类名相同的类里面的main,所以是第二个

#4


这个文件编译后生成两个类,E20和InvolveMain,你如果执行E20,也就是“java E20”,执行E20的main,因为你在这个main中调用了InvolveMain的main方法,所以它也会执行;你要是执行InvolveMain,也就是“java InvolveMain”,就会报错,没有主方法。如果你把InvolveMain中的main改成注释那样,就可以执行了。

#1


不明白什么意思,程序启动肯定是执行E20的main方法了。

#2


E20 的main方法是程序的主入口,进入之后才调用InvolveMain类的 main方法,不管你是否把InvolveMain类main方法的权限public,一个程序都只有一个主入口吧,所以jvm是肯定先找到E20的main..

#3


JVM会找和类名相同的类里面的main,所以是第二个

#4


这个文件编译后生成两个类,E20和InvolveMain,你如果执行E20,也就是“java E20”,执行E20的main,因为你在这个main中调用了InvolveMain的main方法,所以它也会执行;你要是执行InvolveMain,也就是“java InvolveMain”,就会报错,没有主方法。如果你把InvolveMain中的main改成注释那样,就可以执行了。