main
不是java中的关键字。 JVM如何知道执行main
方法作为任何程序的起点?
答案 0 :(得分:12)
main
不需要是java中的关键字,以便JVM在执行开始时查找它。与称为main
的其他方法或变量没有冲突。这就是JVM规范的设计方式。它很可能是从c语言中借来的。
Java规范参考:keywords,invoking main。
答案 1 :(得分:10)
它只是在JLS中指定的。
12 Execution
...
通过加载指定的类然后在此指定的类中调用方法
main
来启动Java虚拟机。第§12.1节概述了执行main
时涉及的加载,链接和初始化步骤,作为本章概念的介绍。更多部分指定了加载(§12.2),关联(§12.3)和初始化(§12.4)的详细信息。...
12.1 Virtual Machine Start-Up
Java虚拟机通过调用某个指定类的方法
main
来开始执行,并向其传递一个参数,该参数是一个字符串数组。在本规范的示例中,第一个类通常称为Test
。...
12.1.4 Invoke Test.main
最后,在完成类
Test
的初始化之后(在此期间可能发生了其他相应的加载,链接和初始化),调用main
的方法Test
。 / p>方法
main
必须声明为public
,static
和void
。它必须接受一个字符串数组的参数。
答案 2 :(得分:0)
它通过使用反射来调用此方法。您可以查看Java Web Start源代码,例如
答案 3 :(得分:0)
基本上每种语言都或多或少与其前身相似。在C语言中,它首先执行的是main(),但它不是必须始终执行的。也可以执行没有main方法的程序。所以,它只是首先调用main方法的惯例。
请检查:
Entry point for Java applications: main(), init(), or run()?
答案 4 :(得分:-2)
Main基本上是中心方法的通用指标,因此Java在提供公共静态时自动将其作为核心方法
public static void main