在类的声明中,可以包含多个初始化块,当创建类的实例时,就会依次执行这些代码块。如果使用 static 修饰初始化块,就称为静态初始化块。
程序运行时的执行顺序:
1. 首先,静态初始化块最先被执行,
2. 然后,执行普通初始化块,
3. 最后才执行构造方法。
静态初始化块只在类加载时执行一次。
----------下面的例子中,只用调用了DatabaseUtils, static块就会先被执行(运行config()方法)--------------------
public class DatabaseUtils {
private static String username;
private static String password;
private static String dataBaseName;
static{
config();
}
public static void config(){
Properties prop=new Properties();
try {
prop.load(DatabaseUtils.class.getClassLoader().getResourceAsStream("jdbc.properties"));
username=prop.getProperty("db.username");
password=prop.getProperty("db.password");
dataBaseName=prop.getProperty("db.dataBaseName");
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("jdbc.properties loading error:");
e.printStackTrace();
}
}
}