我们都知道Java的入口方法是main函数,下面这段代码就是Java中非常经典的Hello World代码:
![854a0d88284162668897cbb04ec9a1ff.png](https://i-blog.csdnimg.cn/blog_migrate/338e3089c84d30123b9dbf72a5700b1b.jpeg)
我们通过Java提供的工具进行编译执行:
通过上面的代码我们知道Java入口方法的几个要求:
- 方法名称必须是main
- 方法必须是静态方法
- 方法返回值必须是void
- 方法只接收一个String[]类型的入参
Java程序的入口方法为什么是main方法
有上面的分析我们可以知道Java的入口方法是固定格式的,那么这个固定的格式是在哪里指定的呢?下面我们就分析一下。
要想知道为什么Java的入口方法为什么是main方法,就需要研究jvm的源码了。在jvm的源码中我们能够找到如下的代码:
![cf777a05f1f96f9b352f9c9e338ce4e1.png](https://i-blog.csdnimg.cn/blog_migrate/0a9fe1c9f481b739d8c048e8dc90fda5.jpeg)
从代码中可以发现,jvm中会从mainClass中去查找一个名称为main的静态方法,这个就是Java的入口方法,这个方法的描述信息为:([Ljava/lang/String;)V。这个字符串就描述了入口方法的入参和返回值。
[Ljava/lang/String表示的是参数为String[],V表示的是返回值为void。