Java 我还是不知道';无法理解公共静态void main(字符串[]args)

Java 我还是不知道';无法理解公共静态void main(字符串[]args),java,Java,在使用Java将近一年之后,我仍然无法向其他人或我自己解释为什么我们需要它,以及它是如何工作的 显然,我知道每一个关键字独立地做什么,但我不确定整个事情 有人能用非常简单的语言描述一下吗?Public:是一个访问修饰符,它定义了谁可以访问这个方法。Public表示任何类都可以访问此方法(如果其他类可以访问此类) 静态:是标识类相关内容的关键字。这意味着给定的方法或变量不是实例相关的,而是类相关的。可以在不创建类实例的情况下访问它 Void:用于定义方法的返回类型。它定义了方法可以返回的内容。Vo

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

显然,我知道每一个关键字独立地做什么,但我不确定整个事情


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

Public:是一个访问修饰符,它定义了谁可以访问这个方法。Public表示任何类都可以访问此方法(如果其他类可以访问此类)

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

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

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

字符串args[]:是main方法的参数。

启动程序定义
main()
方法:

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

public static void main(String[] args)
这就解释了为什么需要它:需要它来开始运行Java程序。

工作原理:启动时由启动器调用。

我知道这些已经感谢您的回复和否决票

公开的

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

静止的

当JVM调用main方法时,被调用的类不存在对象,因此它必须有静态方法才能允许从类调用

空虚

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

主要

这只是方法的名称。这个名称是固定的,JVM将其称为应用程序的入口点

字符串args[]

这些是Java应用程序在运行时接受的字符串类型的参数


但是为什么没有像在其他语言中那样调用main的simlar方法,为什么我们需要获取参数并存储为字符串,而有时我们只调用main中的方法

其他答案都是正确的,但我会尽量用英语陈述。
当您创建一个程序时,java需要知道从何处启动程序,所以他们将此作为入口点。因为它是静态方法,所以不需要类的实例化。它只需调用该方法,就可以知道程序是从哪里开始的。

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

java com.stackoverflow.example.Main bla blah
JVM然后只加载这个类,查找其
静态void main(String[]args)
方法,并使用从命令行获取的其余参数调用它

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

它是程序的入口点。谷歌的一个例子是,
args
不是
string[]
类型,而是
string[]
。写得很好,请向上投票,让您开始使用StackOverflow。我认为您应该编辑您的问题并添加此内容,而不是发布带有问题的答案。对于使用main的其他程序-是的,他们可以。在C中也有main()。在Windows C++程序中,有WINMINE()