首先,有兩種類型的初始化塊:
這段代碼應(yīng)該說明它們的使用以及它們的執(zhí)行順序:
public class Test {
static int staticVariable;
int nonStaticVariable;
// Static initialization block:
// Runs once (when the class is initialized)
static {
System.out.println("Static initalization.");
staticVariable = 5;
}
// Instance initialization block:
// Runs each time you instantiate an object
{
System.out.println("Instance initialization.");
nonStaticVariable = 7;
}
public Test() {
System.out.println("Constructor.");
}
public static void main(String[] args) {
new Test();
new Test();
}}
指紋:
Static initalization.Instance initialization.Constructor.Instance initialization.Constructor.
如果您希望運行某些代碼,而不管使用哪個構(gòu)造函數(shù),或者希望為匿名類進行某些實例初始化,則實例化塊非常有用。