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)
我在 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)