当一个类被 new 一个对象的时候,构造方法就被调用了,而当类被加载的时候,静态模块就被调用了,所以如果想在main 方法被调用之前就输出相关语句,可以用静态模块的方法,下面给了一个例子演示静态模块和构造方法,以及 main 方法依次被调用的顺序:
package javaTest;
import java.util.Scanner;
public class javaTest {
public javaTest(){
System.out.println("hello");
}
static {
System.out.println("world");
}
public static void main(String[] args){
System.out.println("你好世界!");
new javaTest();
}
}
输出结果为:
world
你好世界!
hello
可以看出静态模块的内容首先被输出,是在 main 方法之前输出,而main 方法第二个被输出,最后的是构造方法,因为 new 了一个 JavaTest 的一个实例,调用了构造方法,如果没有new 一个实例,那么构造方法将不会被调用