2017-04-10 69 views
1

经过近一年的Java工作,我仍然无法向其他人或我自己解释为什么我们需要这个,以及它是如何工作的。我还是不明白public static void main(string [] args)

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

有人能用非常简单的语言描述吗?

+0

它的入口点计划采取的其余参数调用它。 – Kayaman

+2

http://docs.oracle.com/javase/tutorial/getStarted/application/index.html#MAIN – azurefrog

+0

Google ['什么是java main'](https://www.google.com/search?q=what + is + java + main) – Andreas

回答

4

Public:是一个访问修饰符,它定义谁可以访问此方法。公共意味着这个方法可以被任何类访问(如果其他类可以访问这个类)。

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

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

main:是方法的名称。该方法名称由JVM搜索,仅作为具有特定签名的应用程序的起点。

String args []:是主Method的参数。

+0

写得很好,让你开始使用StackOverflow。 –

0

main()方法由java发射定义:

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

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

1

我知道这些已经谢谢你的回复和赞誉。

公共

这意味着你可以从你目前在外部类调用此方法。这是必要的,因为这种方法是由未位于Java运行时系统称为你当前的课程。

静态

当JVM使得调用的主要方法有因此被称为它必须有静态方法以允许从类调用现有的类中没有对象。

无效

Java是独立于平台的语言,它是否会返回一些值,则该值可能意味着不同的事情不同的平台。还有其他方法可以在多线程系统上退出程序。详细解释。

主要

这方法只是名字。这个名称是固定的,并且由JVM调用它作为应用程序的入口点。

字符串ARGS []

这些都是String类型的参数,当你运行你的Java应用程序接受。

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

+0

我认为你应该编辑你的问题,并添加这个问题而不是发布一个答案。 – rjdkolb

2

其他答案是正确的,但我会尽量用英语说明。 当你创建一个程序时,java需要知道从哪里开始程序,所以他们使用它作为入口点。由于它是静态方法,因此不需要实例化该类。它可以简单地调用该方法,并知道程序启动的位置。

+0

对于使用main的其他程序 - 是的。在C中也有main()。在Windows C++程序中,有WinMain() –

1

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

java com.stackoverflow.example.Main bla blah 

的JVM然后就加载这个类,查找其static void main(String[] args)方法,并用命令行

main(new String[]{"bla", "blah"}); 
相关问题