为什么Java只允许main方法采用String[] args
形式的参数?即字符串数组
public static void main(String[] args)
为什么Java不允许int或double数组
public static void main(int[] args)
或
public static void main(double[] args
为什么它不允许单个字符串或int或float而不是字符串数组呢?类似于:
public static void main(String args)
或
public static void main(int i)
这是您在命令行中运行java程序的方式:
java YourMainClass
其后是命令行参数:
java YourMainClass arg1 arg2 arg3
这将使args
字符串数组包含
和
args
数组设置为
int[]
,那么
究竟如何放入
从JVM的角度来看,将命令行参数放在String
s中是最安全的选择。用户输入的任何内容,都必须是一堆char
s。
根据JLS,
第12.1.4节:
最后,在完成类测试的初始化后(在此期间可能发生了其他相应的加载、链接和初始化),调用测试的方法main。
方法main必须声明为公共的、静态的和无效的。它必须指定一个形式参数(第8.4.1节),其声明的类型是字符串数组。
问题内容: 我刚刚开始用Java编写程序。以下Java代码是什么意思? What is String[] args? When would you use these args? 源代码和/或示例优先于抽象解释 问题答案: 在Java中,包含提供的命令行参数作为对象数组。 换句话说,如果你运行你的程序作为然后将包含。 如果要输出的内容,可以像这样遍历它们…
问题内容: 由于它可能是Java语言中使用最广泛的方法之一,因此为什么它必须接受字符串数组并且没有它就无法工作?例如,我可以一直住: 过度 除了能够接受命令行参数之外,还有其他更高的目的吗,尤其是因为绝大多数Java程序都是GUI驱动的,并且不需要通过命令行接收args? 问题答案: 甚至GUI驱动的Java应用程序也将从某些主要方法开始。“更高的目的”从来没有接受命令行参数。 目的只是接受参数。
我在YouTube上跟随编译器教程视频,当我遇到这样一个事实,即C编程语言更快,因为它允许静态链接和动态链接,但Java只允许动态链接,这就是为什么C比Java快得多。 我的问题是,如果静态链接使程序运行得更快,为什么它不包括在Java中?我知道Java的开发人员做出不包括静态链接的决定肯定有一些真正的好理由,我只是想知道原因是什么。 注意:我不知道这个问题是否已经在SO上有答案,但是因为我找不到
问题内容: 我知道String [] args是作为参数传递给main的字符串数组。 但是,当您不将其包含为参数时(即使您不使用它),它也会引发异常。那么为什么需要它呢?另外,为什么不能是int []或boolean []? 问题答案: 这是一个字符串,因为命令行以文本形式表示。如果要将文本转换为整数或布尔值,则必须自己做- 操作系统或Java引导程序如何确切知道您希望如何解析所有内容?我想Jav
为什么编译器匹配字符串重载,而不是对象重载?
嗨,我是一个java学习者,并试图使这个程序添加两个数字。 异常在线程"main"java.lang.ArrayIndexOutOfBounds异常: 0在addnumber.main(addnumber.java:16)Java结果: 1 我知道我可以使用Scanner类或string builder类,但是这段代码有什么问题吗?