3

public static void main(String[] args)Java提供的某些类的内置或用户定义或覆盖的功能是否?如果它是在某个接口或类中声明或定义的,在哪里可以找到它的声明?

4

4 回答 4

15

JLS 12

Java 虚拟机通过调用某个指定类的 main 方法开始执行,并传递给它一个参数,该参数是一个字符串数组。

每个 Java 应用程序都应该有一个main()方法,JVM 会main()在启动应用程序时查找该方法。这是执行开始的地方。不,它不是内置的,您main()在类中定义该方法,该方法将成为您的应用程序的起始执行点。main() 方法必须是public, static, returnvoid并接受一个参数:一个String数组。任何具有这种main()方法的类都可以用作 Java 应用程序的起点。

JVM 规范 5.2

Java 虚拟机通过使用引导类加载器(第 5.3.1 节)创建一个初始类来启动,该类以依赖于实现的方式指定。Java 虚拟机然后链接初始类,对其进行初始化,并调用公共类方法 void main(String[])。调用此方法会驱动所有进一步的执行。执行构成主要方法的 Java 虚拟机指令可能会导致附加类和接口的链接(并因此创建),以及调用附加方法。

于 2013-07-20T06:17:56.367 回答
6

它没有由任何接口定义,语言规范规定它是 JRE 在开始运行时查找的函数。

于 2013-07-20T06:17:12.463 回答
0

它独立于您在答案中指定的所有内容。当您通过调用java MyClass您的 JVM 来调用您的解释器时,将尝试 public static void main(String[] args)在您编译的 MyClass 代码(The method main must be declared public, static, and void. It must specify a formal parameter whose declared type is array of String)中找到一个带有签名的方法。口译将从那里开始。它不是用户定义的,而是由Java Language Specification.

更多参考 -检查这里。

于 2013-07-20T07:05:32.227 回答
0

公共静态无效主(字符串[]参数){}

每个java应用程序的main函数都必须声明。因为当我们运行一个应用程序时,JVM会寻找main函数。而main函数不是内置的。我们也调用main main函数作为应用程序的起点

Public :它是一个访问说明符。它定义了谁可以访问这个方法。

静态:无需创建 Class 实例即可访问。

无效:返回类型。

main:方法的名称。JVM 会搜索此方法名称作为应用程序的起点。

String args[] : main 方法的参数。

于 2014-04-08T16:48:06.620 回答