为什么Java中的main()方法始终是静态的?

Java main()方法始终是静态的,因此编译器可以在不创建对象的情况下或在创建类的对象之前调用它。

  • 在任何Java程序中,main()方法都是编译器开始执行程序的起点。因此,编译器需要调用该main()方法。

  • 如果允许 main()是非静态的,则在调用main()方法时,JVM必须实例化其类。

  • 在实例化它时,必须调用该类的构造函数,如果该类的构造函数接受一个参数,则会产生歧义。

  • 只能通过使用类名称来调用类的静态方法,而无需创建类的对象。

  • Java中的main() 方法必须声明为publicstatic void。如果缺少任何这些,则Java程序将编译,但会引发运行时错误。

示例

class Book {
   public static void getBookInfo() { //static method
      System.out.println("Welcome to nhooo Library");
   }
}
public class Test {
   public static void main(String[] args) {
      //仅使用类名称调用Book类的静态方法
      Book.getBookInfo();
   }
}

输出结果

Welcome to nhooo Library