public static main(String [] args)和static public有什么区别

时间:2013-09-26 10:21:06

标签: java

在我的一生中,我一直想知道这两者之间有什么不同,差异在于

public static void main (String[] args){}

static public void main(String... args){}

我和朋友见过这些代码,但即使他也不知道原因。

这两者如何相互不同?

抱歉,我编辑了主方法的返回类型......

6 个答案:

答案 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 
  1. varagrs
  2. when do you use varargs
  3. the best explained tutorial varargs

答案 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风格”来注意这一点。