使用Java的静态方法主要有什么实际区别吗?

时间:2014-02-23 22:22:06

标签: java static main

如果我有以下Java类:

public class MyClass
{
  ...

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

如果我以下面两种方式称呼它,是否有任何实际差异?

[1] new Stock_Image_Scanner().main(null);
[2] Stock_Image_Scanner.main(null);

3 个答案:

答案 0 :(得分:6)

在第一个构造函数中执行。在第二个中它没有。

答案 1 :(得分:4)

main是一个静态函数,不应该通过实例调用。它只应通过类名调用:

Stock_Image_Scanner.main(null);

此外,null应该更改为new String[]{}。正如@kg_sYy所述,new方式(通过实例)执行类构造函数,这通常是意外的,不推荐使用。

更多信息:

答案 2 :(得分:3)

用另一种方式说同样的话:

new Stock_Image_Scanner().main(null);

与:

相同
new Stock_Image_Scanner();
Stock_Image_Scanner.main(null);