1.static 变量首先初始化
2.static模块次之
3. 最后才是构造函数
package ChuShiHua;
/*
* 结果就是static 变量第一个被初始化
* static 模块第二被初始化
* 接下来才是构造函数的初始化
*/
public class ChuShiHua {
static String a = "string - a";
static String b;
String c = "string - c";
String d;
static {
printStatic("before static");
b = "string - b";
printStatic("after static");
}
public static void printStatic(String title){
System.out.println("----------------" + title + "----------------");
System.out.println("a = \"" + a + "\"");
System.out.println("b = \"" + b + "\"");
//未初始化,不能使用
// System.out.println("c = \"" + c + "\"");
// System.out.println("d = \"" + d + "\"");
}
//构造函数
public ChuShiHua() {
print("before constructor");
d = "string - d";
print("after constructor");
}
public void print(String title) {
System.out.println("----------------" + title + "----------------");
System.out.println("a = \"" + a + "\"");
System.out.println("b = \"" + b + "\"");
System.out.println("c = \"" + c + "\"");
System.out.println("d = \"" + d + "\"");
}
public static void main(String[] args) {
new ChuShiHua();
}
}