JVM如何使用"Main方法"启动Java程序?

San*_*ain 12 java

main不是java中的关键字.JVM如何知道执行该main方法作为任何程序的起点?

Asa*_*aph 12

main不需要是java中的关键字,以便JVM在执行开始时查找它.与其他方法或变量也没有冲突main.这就是JVM规范的设计方式.它很可能是从c语言中借来的.

Java Specification References:关键字,调用main.

  • +1请注意,不仅方法名称很重要,它还需要是`static`(也许是`void`),并将`String []`作为唯一的参数. (2认同)

Bal*_*usC 10

它只是在JLS中指定的.

12执行

...

通过加载指定的类然后main在此指定的类中调用该方法来启动Java虚拟机.第12.1节 概述了执行中涉及的加载,链接和初始化步骤main,作为本章概念的介绍.其他部分详细说明了加载(第12.2节),链接(第12.3节)和初始化(第12.4节)的细节.

...

12.1虚拟机启动

Java虚拟机通过调用main某个指定类的方法开始执行,并向其传递一个参数,该参数是一个字符串数组.在本说明书的示例中,通常调用该第一类Test.

...

12.1.4调用Test.main

最后,对于类的初始化完成之后Test(在此期间其他相应加载,链接和初始化可能发生),该方法mainTest调用.

该方法main必须声明public,staticvoid.它必须接受一个字符串数组的参数.