在我的一生中,我一直想知道这两者之间有什么不同,差异在于
public static void main (String[] args){}
和
static public void main(String... args){}
我和朋友见过这些代码,但即使他也不知道原因。
这两者如何相互不同?
抱歉,我编辑了主方法的返回类型......答案 0 :(得分:6)
这两者的功能性没有区别。但就惯例而言,使用可见性运算符,如public,private,首先是static。
不要忘记返回类型!
这应该是它的样子:
public static void main (String[] args){}
参数String[] args
是正常数组。 String... args
被称为varargs。在这种情况下,没有区别。但请看一下varargs。
答案 1 :(得分:4)
public static void main (String[] args){}
static public void main (String... args){}
是一样的。请注意,返回类型(在这种情况下为void)无法重新定位。
请参阅reference。
答案 2 :(得分:2)
两者之间的唯一区别是你调用函数的方式。使用String var args,您可以省略数组创建。
public static void main(String[] args) {
callMe1(new String[] {"a", "b", "c"});
callMe2("a", "b", "c");
// You can also do this
// callMe2(new String[] {"a", "b", "c"});
}
public static void callMe1(String[] args) {
System.out.println(args.getClass() == String[].class);
for (String s : args) {
System.out.println(s);
}
}
public static void callMe2(String... args) {
System.out.println(args.getClass() == String[].class);
for (String s : args) {
System.out.println(s);
}
}
以下是link
这在功能上相同
public static
或
static public
答案 3 :(得分:0)
你可以写两个。 没关系。这意味着完全一样。
变量也是如此。你可以写
final private String
或
private final String
答案 4 :(得分:0)
两者都是一样的,这只是个人风格的问题。常规是首先提供可访问性
public static void main(String... args)
答案 5 :(得分:0)
两者都是一样的,正如许多人已经写过的那样。 我只想指出Java中的varargs功能是从Java 5(Java 1.5)版本实现的。 所以你只需要使用“varargs风格”来注意这一点。