什么是正确的Java main()方法参数语法?

这些方法之间是否存在function差异?

public static void main(String[] args) { } public static void main(String args[]) { } 

编辑(从其他贡献者添加此语法):

 public static void main(String... args) { } 

不,但首先是首选的风格。

编辑:另一种选择是

 public static void main(String... args) 

另外还允许调用者使用varargs语法。

不同的数组符号

符号

 String args[] 

对C程序员来说只是一个方便,但它与这个符号相同:

 String[] args 

以下是Sun Java教程所说的内容:

您还可以在数组名称后面放置方括号:

float anArrayOfFloats[]; // this form is discouraged

但是,公约不鼓励这种forms; 括号标识数组类型,并应显示类型名称。

参考: Java教程>数组

VARARGS

BTW,一个鲜为人知的事实是主要方法也支持varargs,所以这也没关系:

 public static void main(String ... args) { } 

原因是varargs方法在内部与支持指定类型的单个数组参数的方法相同。这样就不会编译:

 public static void main(final String... parameters){} public static void main(final String[] parameters){} // compiler error: Duplicate method main(String[]) 

参考: Java教程>任意数量的参数

没有区别,但第一个是按标准。

其他答案是正确的,因为它没有任何区别。 我再补充两点:

String ... args现在也有效,在这种情况下再次没有区别。

当您定义多个变量时,放置括号的不同选项会产生结果。 在以下示例中,变量a不是String数组,但b是1, c是字符串数组的数组。

String a, b[], c[][];

但是,我必须建议不要将此样式用于您的代码,因为它很快就会变得非常混乱。 例如, String [] b, c[]; 对于bc与上述相同,但特别是对于c这是不明显的。

不,他们没有区别。 虽然……我过去常常使用第二种方式,直到我的女朋友威胁要打破,如果我继续这样做(不是开玩笑)。 所以现在我更喜欢第一种方式,我觉得它看起来好多了。

不,以上是相同的。 Java中的数组可以通过以下两种方式之一声明:

 String[] myarray; 

要么

 String myarray[]; 

使用String []而不是使用[] postfix来引用。 Infact String [] obj; hilights事实上obj是String []类型的引用(String数组)。

我也更愿意将args标记为final

 public static void main(final String[] args) { } 

两种选择之间没有区别,你可以选择其中一种。

你也可以这样说:

 public static void main(String... args) { }