📜  Java中的静态块和main()方法

📅  最后修改于: 2022-05-13 01:55:34.872000             🧑  作者: Mango

Java中的静态块和main()方法

在Java中,静态块用于初始化静态数据成员。需要注意的重要一点是静态块在类加载时在 main 方法之前执行。

以下示例很好地说明了这一点:

// Java program to demonstrate that static 
// block is executed before main()
  
class staticExample {
  
    // static block
    static
    {
        System.out.println("Inside Static Block.");
    }
  
    // main method
    public static void main(String args[])
    {
        System.out.println("Inside main method.");
    }
}

上面的例子引发了一个问题:

问题:我们可以在不声明 main() 方法的情况下执行Java类吗?
答:不可以,因为 JDK 1.7 没有 main() 方法就不能执行任何Java类。但这是 JDK 1.6 之前的方法之一。
例子:

// The below code would not work in JDK 1.7
class staticExample {
  
    // static block execution without main method in JDK 1.6.
    static
    {
        System.out.println("Inside Static Block.");
        System.exit(0);
    }
}

输出:(在 JDK 1.6 中)

Inside Static Block.

但是从 JDK 1.7 开始,上面的代码在输出中给出了错误。

输出:

Error: Main method not found in class staticExample, please define the main method as:
       public static void main(String args[])
       or a JavaFX application class must extend javafx.application.Application