我还是不明白public static void main(string [] args)

时间:2017-04-10 16:07:54

标签: java

在使用Java工作近一年后,我仍然无法向其他人或我自己解释为什么我们需要它,以及它是如何工作的。

显然,我知道每个关键字的独立性,但我不确定整个事情。

有人可以用非常简单的语言描述它吗?

5 个答案:

答案 0 :(得分:4)

Public:是一个Access Modifier,它定义了谁可以访问此方法。公共意味着任何类都可以访问此方法(如果其他类能够访问此类。)。

静态:是一个标识类相关事物的关键字。这意味着给定的方法或变量与实例无关,但与类相关。可以在不创建类实例的情况下访问它。

Void:用于定义Method的Return Type。它定义了方法可以返回的内容。 Void意味着Method不会返回任何值。

main:是Method的名称。 JVM将此方法名称作为仅具有特定签名的应用程序的起点进行搜索。

String args []:是主方法的参数。

答案 1 :(得分:2)

其他答案是正确的,但我会尝试用英语说明。 当您创建程序时,java需要知道启动程序的位置,因此他们将此作为入口点。由于它是静态方法,因此不需要是类的实例化。它可以简单地调用该方法并知道程序启动的位置。

答案 2 :(得分:1)

我知道这些已经感谢你的回应和downvotes。

  

公共

这意味着您可以从当前所在类的外部调用此方法。这是必要的,因为此方法由Java运行时系统调用,该系统不在您当前的类中。

  

静态

当JVM调用main方法时,没有对象被调用,因此它必须有静态方法来允许从类调用。

  

空隙

Java是与平台无关的语言,如果它返回一些值,那么该值可能对不同平台意味着不同的东西。还有其他方法可以在多线程系统上退出程序。详细解释。

  

这只是方法的名称。此名称是固定的,因为它被JVM称为应用程序的入口点。

  

String args []

这些是Java应用程序在运行时接受的String类型的参数。

但是为什么没有像其他语言一样调用main的简单方法,以及为什么我们需要获取参数并存储为String,而我们有时只调用main中的方法。

答案 3 :(得分:1)

当您启动Java程序时,JVM需要知道应该从哪里开始执行整个程序。这并不明显,因为类路径上有数千个Java类可用。 这就是为什么你必须在命令行中给出一个特定Java类的名称。例如

java com.stackoverflow.example.Main bla blah

JVM然后只加载此类,查找其static void main(String[] args)方法,并使用从命令行获取的其余参数调用它

main(new String[]{"bla", "blah"});

答案 4 :(得分:0)

main()方法由java启动器定义:

  

java命令启动Java应用程序。它通过启动Java运行时环境(JRE),加载指定的类并调用该类的main()方法来完成此操作。该方法必须声明为 public static ,它不能返回任何值,并且必须接受String数组作为参数。方法声明具有以下形式:

public static void main(String[] args)

这解释了为什么需要它:需要开始运行Java程序。
它是如何工作的:它在启动时被启动器调用。