main方法中String数组的不同符号有什么区别?

时间:2015-11-29 05:23:39

标签: java arrays string main

我在java中将参数传递给main方法时使用了三种表示法。

public static void main(String[] args)
public static void main(String args[])
public static void main(String... args)

谁能告诉我上面的区别?有人使用术语打包和非打包数据来解释前两个,它们是什么,是否与这些有关?
我认为前两个与编码约定有些相关。我是对的吗?

2 个答案:

答案 0 :(得分:2)

没有实际差异,变体是由于您在java语法中定义数组的不同方式。

  • 定义和数组的标准方法

    String [] args

  • C / C ++风格源于历史原因

    String args []

  • Varargs风格(When do you use varargs in Java?

    String ... args

所有将编译为相同的字节码。

我会坚持
public static void main(String[] args)

答案 1 :(得分:0)

前两个是相同的。

事实上,这三个在基地是相同的。但是第三种被称为varargs并且具有特殊目的,即它可以用作方法中的可选参数。例如,如果您有一个需要参数int x, String... y的方法,那么即使您调用参数而不传递String... y作为参数参数,代码也会编译。更多信息请访问:Methods, Optional Parameters and/or Accepting multiple Data Types

同时检查:Java varags method param list vs. array