这些方法之间是否存在功能差异?
public static void main(String[] args) { }
public static void main(String args[]) { }
EDIT(从其他贡献者那里添加了这种语法):
public static void main(String... args) { }
答案 0 :(得分:13)
不,但第一种是首选款式。
修改强> 另一种选择是
public static void main(String... args)
另外允许调用者使用varargs语法。
答案 1 :(得分:10)
符号
String args[]
对C程序员来说只是一种便利,但它与这种表示法相同:
String[] args
以下是Sun Java教程所说的内容:
您也可以放置方括号 在数组名称之后:
float anArrayOfFloats[]; // this form is discouraged
但是,会议不鼓励这样做 形成;括号标识数组 类型,应该与类型一起出现 指定。
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[])
答案 2 :(得分:7)
没有区别,但第一个是符合标准的。
答案 3 :(得分:7)
其他答案是正确的,因为它没有任何区别。我再补充两点:
String ... args
现在也有效,在这种情况下再没有区别。
当您定义多个变量时,放置括号的不同选项会产生影响。在以下示例中,变量a
不是String数组,但b
是1,c
是字符串数组的数组。
String a, b[], c[][];
但是,我必须建议不要将此样式用于您的代码,因为它很快就会变得非常混乱。例如,String [] b, c[];
表示上述b
和c
的相同内容,但对于c
尤其如此,这是不明显的。
答案 4 :(得分:6)
不,他们没有区别。虽然......我过去常常使用第二种方式,直到我的女朋友威胁要打破,如果我继续这样做(不是开玩笑)。所以现在我更喜欢第一种方式,我觉得它看起来好多了。
答案 5 :(得分:4)
不,以上是相同的。 Java中的数组可以用以下两种方式之一声明:
String[] myarray;
或
String myarray[];
答案 6 :(得分:2)
使用String []而不是使用[] postfix来引用。 Infact String [] obj; hilights事实上obj是String []类型的引用(String数组)。
答案 7 :(得分:2)
我还希望将args
标记为final
。
public static void main(final String[] args) { }