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

What are difference in different notations of String array in main method?

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

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

谁能告诉我上面的区别?有人用术语打包和非打包数据来解释前两个,它们是什么,与这些有关系吗?

我认为前两个与编码约定有些相关。我说得对吗?

前两个相同

事实上,这三个在基础上都是一样的。但是第三种被称为 varargs 并且有一个特殊的用途,它可以用作方法中的可选参数。例如,如果你有一个需要参数 int x, String... y 的方法,那么即使你调用参数而不传递 String... y 作为参数参数,代码也会编译。此处有更多信息:

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

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

  • 定义和数组的标准方式

    字符串[]参数

  • C/C++风格因历史原因存在

    字符串参数[]

  • 可变参数样式 (When do you use varargs in Java?)

    字符串…参数

全部编译成相同的字节码。 我会坚持

public static void main(String[] args)