有段时间没有用java SE,结果基本的main函数写的时候写成了返回类型int =.=|| 当成c的规则了。那么为什么java要这样规范main()函数呢?
我们看到java的main函数有 个限制: public static void main(String[] args){} 其他事可以自己定义的。那么:
1. public :这个字段决定了函数是否可以被外部函数调用。我们知道C里面的函数是跑在操作系统环境中的,可以认为操作系统一个大的函数,这个函数调用了C的main()。java中也是同样的道理,只不过java的main函数是跑在jvm中的。如果不限定public,jvm就不能调用main。
2 static:在C中,所有的函数可以被直接调用,没有类的概念,而在java中,一般的函数需要先实例化一个类,然后用这个实例来调用函数。如果要直接用类名调用一个函数,就必须在函数前限制static,JVM调用main就是用了这个方法。
3 void:这个是我最纳闷的,不过既然不是操作系统直接调用main(),那么返回类型不一样也是正常的,我在网上也看到jvm是不接受任何类型的返回的,这就直接导致了main函数不能返回值。但是jvm是什么样的运行机制导致其不接受返回值就不得而知了,有知道的望指点~。
4 String[]:类似于C中的参数char**,int,java中数组可以记录数目,所以省去了int类型的参数来表示字符串个数。
另外,附xwdreamer的文章java中main函数解析 对java调用main函数的过程做了分析,可以进一步了解整个调用过程。