main是啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了main是啥意思相关的知识,希望对你有一定的参考价值。
在java/C/C++中,main为程序运行的主入口方法,每个程序只有一个,例如:
#include <stdio.h>
int main(int argc, char *argv[])
int i;
printf("命令行参数有%d个,分别是:\n",argc);
for(i=0;i<argc;i++)
printf("%s\n",argv[i]);
return 0;
这是带参数的main函数。
C语言中为什么一定要有main函数?
【1】任何一个C++程序都包含一个main函数,这是规定。main函数由系统直接调用,是程序执行的入口。 (和C语言中一样)
【2】main函数与用户自己定义的函数都是各自独立的模块,即函数不能嵌套定义,通俗的说,你不能在一个函数的函数体内定义另一个函数,即使在main函数中也不行。但main函数可以对用户自己定义的函数进行调用(但main函数只能由系统调用)。用户自己定义多个函数时,这几个用户自己定义的函数之间都可以互相调用 。 参考技术A n.
主要部分, 体力, 力量, 大陆, 要点, 干线
adj.
主要的, 重要的, 全力的
n.
[计] 主群组本回答被提问者采纳 参考技术B 形容词:意思是“主要的”。 参考技术C 主函数,及程序的入口,就是一开始程序先进入main()里面去 参考技术D 主函数
`public static void main args` 是啥意思?
【中文标题】`public static void main args` 是啥意思?【英文标题】:What does `public static void main args` mean?`public static void main args` 是什么意思? 【发布时间】:2015-05-30 09:04:45 【问题描述】:我不确定这是什么意思,每当你写代码之前,人们都会这样说
public static void main(String[] args)
这是什么意思?
【问题讨论】:
docs.oracle.com/javase/tutorial/getStarted/application/… 【参考方案1】:这里稍微详细解释一下为什么main方法声明为
public static void main(String[] args)
Main 方法是 Java 虚拟机 (JVM) 的 Java 程序的入口点。假设我们有一个名为Sample
的类
class Sample
static void fun()
System.out.println("Hello");
class Test
public static void main(String[] args)
Sample.fun();
这个程序将在编译后作为java Test
执行。 java
命令将启动 JVM 并将我们的 Test.java
类加载到内存中。由于 main 是我们程序的入口点,JVM 会搜索声明为 public
、static
和 void
的 main 方法。
为什么必须将 main 声明为 public?
main()
必须声明为public
,因为我们知道,只要程序执行开始并且 JVM 不属于我们的程序包,它就会被 JVM 调用。
为了访问包外的 main,我们必须将其声明为 public
。如果我们将其声明为 public
以外的任何内容,它会显示 Run time Error
而不是 Compilation time error
。
为什么 main 必须声明为静态的?
main()
必须声明为静态,因为 JVM 不知道如何创建一个类的对象,所以它需要一种标准的方式来访问 main 方法,这可以通过将 main()
声明为 static
来实现。
如果一个方法声明为static
,那么我们可以在类外部调用该方法,而无需使用语法ClassName.methodName();
创建对象。
这样JVM就可以调用我们的main方法为<ClassName>.<Main-Method>
为什么 main 必须声明为 void?
main()
必须声明为 void,因为 JVM 不期望来自 main()
的任何值。所以,必须声明为void
。
如果提供了其他返回类型,则为RunTimeError
,即NoSuchMethodFoundError
。
为什么 main 必须有字符串数组参数?
main(
) 必须将字符串参数作为数组,因为 JVM 通过传递命令行参数调用 main 方法。由于它们存储在字符串数组对象中,因此它作为参数传递给main()
。
【讨论】:
详细解释加1!【参考方案2】:根据Java language specification,Java 程序的执行从main() 方法开始。 main() 方法应该遵循特定的语法,可以解释为:
public static void main(String[] args)
public
- 访问说明符,表明所有其他类都可以访问main()
。
void
- 返回类型,main()
不返回任何内容。
String args[]
- main()
方法的参数,它应该是一个字符串类型的数组。
static
- 访问修饰符。 main 方法应该始终是静态的,因为可以在不创建类实例的情况下调用“main()”方法。
让我们假设,我们正在执行一个 Helloworld java 程序。
在执行程序时,我们使用命令
java Helloworld.
在内部,这个命令被转换成
Helloworld.main()
通过将main()
方法设为静态,JVM 调用main()
方法而不首先创建对象。
【讨论】:
【参考方案3】:在 Java 中,您的主要方法必须始终是:
public static void main(String args[])
程序执行从main()
函数开始,因此是main()
函数。
必须是public
,以便外部环境可以访问。
main()
方法始终是静态的,因为您知道程序执行从main()
方法开始,并且没有包含main()
方法的类的实例被启动。因此,由于静态方法可以在不需要任何实例的情况下运行,因此它被声明为静态的。
Java 是独立于平台的,因此您可以尝试在一个系统上编译 java 文件并尝试在另一个系统上执行类文件。每台机器的位架构可能不同,因此主函数的返回类型必须始终为main()
。
希望这会有所帮助。
【讨论】:
【参考方案4】:Public
= 此方法对所有其他类可见。
static
= 此方法不需要运行实例。
void
= 此方法不返回任何内容。
main()
= Main 方法(第一个运行的方法)。
String[]
= 字符串数组。
args
= 数组名称。
【讨论】:
【参考方案5】:public
--> 访问说明符。任何其他类都可以访问此方法。
static
--> 方法绑定到类,而不是类的实例。
void
--> 返回类型。该方法不返回任何内容。
main(String[] args)
--> 方法名是main()
。它需要一个字符串数组作为参数。 String[]
参数是命令行参数。
注意:上面定义的main()
方法是程序的入口点,如果你改变签名,那么你的程序可能无法运行。
【讨论】:
以上是关于main是啥意思的主要内容,如果未能解决你的问题,请参考以下文章
`public static void main args` 是啥意思?