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