Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么必须将`String[]args`作为main()参数?_Java_String_Main - Fatal编程技术网

Java 为什么必须将`String[]args`作为main()参数?

Java 为什么必须将`String[]args`作为main()参数?,java,string,main,Java,String,Main,我不是问字符串args[]是什么,因为这里回答了这个问题: 我的问题是,为什么在写主文的同时还要写呢 我参加了实践考试,在考试中我遇到了一个问题,意识到我在写公共静态void main时没有写字符串args[]。但在编写了mainString args[]之后,问题就解决了。我怎么知道,为什么我还不知道 就在同一天,我在万岁时被问到——在写main时是否需要写这个字符串args[]?感谢发生的错误,我回答是的,但当被问到为什么时,我没有回答?。 所以我想知道为什么需要编写字符串[]args。这是

我不是问字符串args[]是什么,因为这里回答了这个问题:

我的问题是,为什么在写主文的同时还要写呢

我参加了实践考试,在考试中我遇到了一个问题,意识到我在写公共静态void main时没有写字符串args[]。但在编写了mainString args[]之后,问题就解决了。我怎么知道,为什么我还不知道

就在同一天,我在万岁时被问到——在写main时是否需要写这个字符串args[]?感谢发生的错误,我回答是的,但当被问到为什么时,我没有回答?。
所以我想知道为什么需要编写字符串[]args。

这是用于命令参数的。如果没有它们,JVM在尝试调用该方法之前必须执行一次检查,以查看该方法是否包含参数,确定是否可以使用不同的方法调用main或main两个语法正确的方法。这是针对命令参数的。如果没有它们,JVM在尝试调用该方法之前必须执行一次检查,以查看该方法是否包含参数,从而确定是否可以使用不同的方法调用main或main两个语法正确的方法

main方法必须声明为public、static和void。它必须指定一个形式参数§8.4.1,其声明类型为字符串数组。因此,以下任一声明均可接受:

公共静态无效字符串[]args

公共静态无效环。。。args

请注意,不能有字符串[]和字符串。。。在同一个类中,由于是简单的语法糖,在编译时会被数组替换,所以最终会有两个方法处理String[],而一个类不能有两个具有相同名称和参数的方法

所以当你执行命令时

java YourClass foo bar
Java虚拟机将把foo和bar参数放在String[]数组中,并尝试将该数组传递给main方法,main方法可以接受它作为参数

当命令没有任何参数时,也可以使用此方法,如

java YourType
这个决定简化了我们的生活,因为我们不需要专注于处理有两个切入点的案例

一个用于带参数的命令 还有一个命令没有任何参数。 我们可以简单地允许用户传递参数,但如果我们不想处理它们,我们可以简单地忽略它们

还请记住,我们允许在类中包含任何具有正确声明且不违反从超类继承的任何规则(如扩大成员可见性)的方法-我们不能将受保护的方法公开,因此使用

public static void main(){
    /*your code*/
}
但您需要认识到,此方法不能用作入口点,因此,如果您想从此方法启动应用程序,则需要创建适当的主方法,以执行主方法:

main方法必须声明为public、static和void。它必须指定一个形式参数§8.4.1,其声明类型为字符串数组。因此,以下任一声明均可接受:

公共静态无效字符串[]args

公共静态无效环。。。args

请注意,不能有字符串[]和字符串。。。在同一个类中,由于是简单的语法糖,在编译时会被数组替换,所以最终会有两个方法处理String[],而一个类不能有两个具有相同名称和参数的方法

所以当你执行命令时

java YourClass foo bar
Java虚拟机将把foo和bar参数放在String[]数组中,并尝试将该数组传递给main方法,main方法可以接受它作为参数

当命令没有任何参数时,也可以使用此方法,如

java YourType
这个决定简化了我们的生活,因为我们不需要专注于处理有两个切入点的案例

一个用于带参数的命令 还有一个命令没有任何参数。 我们可以简单地允许用户传递参数,但如果我们不想处理它们,我们可以简单地忽略它们

还请记住,我们允许在类中包含任何具有正确声明且不违反从超类继承的任何规则(如扩大成员可见性)的方法-我们不能将受保护的方法公开,因此使用

public static void main(){
    /*your code*/
}
但您需要认识到,此方法不能用作入口点,因此,如果您想从此方法启动应用程序,则需要创建适当的主方法,以执行主方法:


在Java中,入口点必须是公共静态void mainString[]方法。这就是我们在运行类时所说的。不调用没有参数的main方法。如果命令中没有参数,则只调用长度为0的数组mainString[]

补充 对于Viva问题,参数的标识符仅由编译器使用,并且可以更改,以及[]的替代位置或使用字符串。。。指定一个数组。因此,这似乎是一个技术问题,但您可以使用以下任何一种:

公共静态无效字符串[]args 公共静态字符串参数[] 公共静态无效环。。。args 公共静态无效字符串[]自定义\u标识符 公共静态无效字符串自定义_标识符[] 公共静态无效环。。。自定义用户标识符
在Java中,入口点必须是公共静态void mainString[]方法。这就是我们在运行类时所说的。不调用没有参数的main方法。如果命令中没有参数,则只调用长度为0的数组mainString[]

为了解决Viva问题,参数的标识符仅由编译器使用,并且可以更改,以及[]的替代位置或使用字符串。。。指定一个数组。因此,这似乎是一个技术问题,但您可以使用以下任何一种:

公共静态无效字符串[]args 公共静态字符串参数[] 公共静态无效环。。。args 公共静态无效字符串[]自定义\u标识符 公共静态无效字符串自定义_标识符[] 公共静态无效环。。。自定义用户标识符
检查适用的关键字是方法签名。请注意,您还可以编写字符串。。。argsminstring[]args按设计是Java应用程序的入口点。此方法还用于处理在控制台中传递的潜在参数,如java YourClass foo bar foo,bar将在args表中结束。没有这种方法,Java就不知道从哪里开始。即使您创建main这样的方法,它也不会与mainString[]args相同,因此您将无法启动应用程序,尽管在您的类中允许使用这种方法,因为您可以使用其他类,只需添加mainString[]args{YourClass.main;}这样的代码即可从您的main调用代码。当您运行程序时,您可以给它命令行参数。您需要一种方法将这些命令行参数传递给程序,这是一种简单的方法。它是JVM本身的Java等价物。你能解释你的疑问吗?检查适用的关键字是方法签名。注意,你也可以写字符串。。。argsminstring[]args按设计是Java应用程序的入口点。此方法还用于处理在控制台中传递的潜在参数,如java YourClass foo bar foo,bar将在args表中结束。没有这种方法,Java就不知道从哪里开始。即使您创建main这样的方法,它也不会与mainString[]args相同,因此您将无法启动应用程序,尽管在您的类中允许使用这种方法,因为您可以使用其他类,只需添加mainString[]args{YourClass.main;}这样的代码即可从您的main调用代码。当您运行程序时,您可以给它命令行参数。您需要一种方法将这些命令行参数传递给程序,这是一种简单的方法。它是JVM本身的Java等价物。你能解释你的疑问吗?谢谢你指出了所有可能的方法来写一个合法的“主要”声明!帮了很多忙!感谢您指出所有可能的方法来编写合法的“主要”声明!帮了很多忙!