为什么java main类需要main()方法

时间:2011-09-16 10:39:18

标签: java

我知道我们可以在没有main()方法的情况下成功编译和运行java程序,但为什么我们仍然需要java主类中的main()方法?

6 个答案:

答案 0 :(得分:9)

每个Java应用程序都必须包含一个main方法,其签名如下所示:

   public static void main(String[] args)

主要方法如何被调用

Java语言中的main方法类似于C和C ++中的main函数。当Java解释器执行应用程序时(通过在应用程序的控制类上调用),它通过调用类的main方法开始。然后main方法调用运行应用程序所需的所有其他方法。

如果您尝试在没有main方法的类上调用Java解释器,则解释器拒绝编译您的程序并显示类似于以下内容的错误消息:

 In class NoMain: void main(String argv[]) is not defined

主要方法的参数

从下面的代码片段中可以看出,main方法接受一个参数:一个String类型的元素数组。

   public static void main(String[] args)

此数组是运行时系统将信息传递给应用程序的机制。数组中的每个String称为命令行参数。命令行参数允许用户影响应用程序的操作,而无需重新编译它。例如,排序程序可能允许用户使用此命令行参数指定数据按降序排序:

    -descending

了解更多信息

http://journals.ecs.soton.ac.uk/java/tutorial/getStarted/application/main.html

答案 1 :(得分:6)

当程序开始运行时,它必须从某个地方开始执行。那个地方被称为main

答案 2 :(得分:6)

引用Java Language Specification(JLS)“A Java virtual machine starts execution by invoking the method main of some specified class, passing it a single argument, which is an array of strings

现在是执行开始的主要方法的典型定义

public static void main(String[] args)

public - 意思应该可以从任何地方访问

static - 在没有实例的情况下应该是静态可访问的(因为JVM启动时,它没有包含main方法的类的实例,因此是静态的)。

void - 返回无效。

因此,一个main()方法在JVM中被“硬编码”,告诉它它是一个起点。

答案 3 :(得分:5)

您可以在没有main方法的情况下编译任何Java类,但如果没有main()方法 * ,则无法运行独立应用程序。

main方法是定义为在应用程序开始时调用的方法。没有它,就没有地方可以开始运行了。

*嗯,丑陋的黑客,你可以做到,但这是作弊

答案 4 :(得分:2)

main()是应用程序的起点。当应用程序启动时,此函数首先从代码中进行评估。它负责运行您的应用程序。

答案 5 :(得分:1)

  1. 要回答这个问题,我们需要了解出色的Java体系结构。
  2. 我们有Java源代码(.java文件)
  3. 编译器检查错误并生成字节代码作为.class文件
  4. 然后类加载器加载.class文件
  5. 由JVM负责

    • a)JVM加载静态块
    • b)之后,JVM中的解释器要读取代码。在一堆代码中,JVM的问题从哪里开始?

    • 答案:为解决此问题,我们提供了main关键字作为JVM在该方法中开始执行的线索。

  6. 之后,Java将通过处理操作系统和硬件来产生输出
  7. 我的答案是否足够清楚?如有任何疑问,请发表评论。