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

问题描述

[java]关于main函数的执行先后顺序
在这个文件在执行的时候先执行那个呢?,如果把InvolveMain类里的方法写成注释后面的又先执行哪个呢?
求详细解释一下,谢谢谢谢。

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

解决方案

首先,测试这段代码,定义的类文件名称必须是E20.java,因为E20是public类,必须有独立的类文件。
其次,一个类文件中定义两个类,且有各自的main方法,注意main方法的声明必须是

 public static void main(String[] args){ }

那么,你运行的时候,需要选中运行哪个类的main方法的,在Eclipse下右键run as application,弹出选择框,让你指定运行哪个类的main函数的。
结论就是,Java语言本身是严谨的,一个类一次执行只能有一个入口main函数的。

解决方案二:
java程序执行过程是这样的,先找到public类,然后从public类中找到main方法开始执行,虽然你在另一个类中也定义了main方法,但这个方法不会被jvm自动调用的。

时间: 2024-08-03 08:39:56

class-[java]关于main函数的执行先后顺序的相关文章

从main函数进入执行编译java代码的方法与从servelet进入执行编译java代码的方法的区别

问题描述 在tomcat用main执行代码public static void main(String[] args) throws Exception {compile();}private synchronized static File compile() throws Exception {String[] args = new String[] { "-d", System.getProperty("user.dir") ,System.getProper

java的main函数为什么是public static void main(String[] args)

这个问题困扰我好久了,今天就一查究竟,毕竟我好奇心比较重 1. why "public"    因为java程序是通过jvm虚拟机调用的,所以main()函数要是想被调用,必须是public 2.why "static"    在java中,没有static的变量或函数,如果想被调用的话,是要先新建一个对象才可以.而main函数作为程序的入口,需要在其它函数实例化之前就启动,这也就是为什么要加一个static.main函数好比一个门,要探索其它函数要先从门进入程序.

求解:java中main()函数问题

问题描述 java新手,一个小问题已头疼两天,信心大减,急求解决!!!!源程序如下:publicclassw{publicstaticvoidmain(String[]args){System.out.println("welcome");}}文件在D:javaLessonlesson1下存放运行状如下:D:javaLessonlesson1>javacw.javaD:javaLessonlesson1>javawExceptioninthread"main&qu

《C和C++程序员面试秘笈》——1.12 C++中main函数执行完后还执行其他语句吗

1.12 C++中main函数执行完后还执行其他语句吗 C和C++程序员面试秘笈考点: atexit()函数的使用 出现频率: [解析] 很多时候,我们需要在程序退出的时候做一些诸如释放资源的操作,但程序退出的方式有很多种,例如main()函数运行结束,在程序的某个地方用exit()结束程序,用户通过Ctrl+C等操作发信号来终止程序,等等,因此需要有一种与程序退出方式无关的方法来进行程序退出时的必要处理.方法就是用atexit()函数来注册程序正常终止时要被调用的函数. atexit()函数的

c++-C++ main()函数返回字符串

问题描述 C++ main()函数返回字符串 如题,怎样在main()函数里返回字符串? 如: string main() { return "hello"; } 这样不行的,该怎么办? 解决方案 main函数的返回值是固定的,只能是int 如果你要在另一个程序调用,你可以用cout输出,另一个程序从standard input获取. 解决方案二: main函数是入口函数,返回值为int是为了能够通过-1.0.1等识别运行的状态. 你要返回字符串,可以自己定义一个函数. 解决方案三:

用java写一个main函数,打印出1-6这这六个数字的所有不同的排列

1.2.2.3.4.5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234.412345等.要求:"4"不能在第三位,"3"与"5"不能相连. package com.test; import java.util.ArrayList; import java.util.List; /** * 1.2.2.3.4.5这六个数字,用java写一个main函数,打印出所有不同的排列, 如:512234.412345等.要求

java里,main函数有栈区吗?如果有,那么main函数的栈区和普通函数的栈区会重叠吗?

问题描述 java里,main函数有栈区吗?如果有,那么main函数的栈区和普通函数的栈区会重叠吗? java里,main函数有栈区吗?如果有,那么main函数的栈区和普通函数的栈区会重叠吗?就是说普通函数的栈区是新开辟的,还是在main函数里面开辟的. 解决方案 栈是每个线程独有的,每次调用函数时,栈就向下增长,调用完就弹出栈,main函数的栈没法和其他函数的栈重叠,因为当main函数出栈时,主线程就结束了.即使还有其他线程在运行,其他线程拥有自己的堆栈,相互也不会影响的. 解决方案二: 你到

java调用存储函数,有些数据可以执行成功,有些却报异常是什么原因?

问题描述 java调用存储函数,有些数据可以执行成功,有些却报异常是什么原因? /** * 获取书籍总点击量 * * @param bookid 书籍id * @return 书籍总点击量 * @throws Exception */ @Override public int getClickAllById(int bookid) throws Exception { ResultSet rs = null; DataParameter[] parameters = new DataParame

eclipse-run>run as>后没有java application 主文件下main函数却有?

问题描述 run>run as>后没有java application 主文件下main函数却有? 解决方案 [Maven]在Maven中运行java main函数的方法(3 ways to run Java main from Maven)3 ways to run Java main from Maven3-ways-to-run-java-main-from-maven 解决方案二: 把main方法写到主类