这道题来源于阿里巴巴的面试
public class Text { // 1
public static int k = 0; //2
public static Text t1 = new Text("t1"); //3
public static Text t2 = new Text("t2"); //4
public static int i = print("i"); //5
public static int n = 99; //6
public int j = print("j"); //7
{
print("构造块"); //8
}
static {
print("静态块"); // 9
}
public Text(String str) { //10
System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
++i;
++n;
}
public static int print(String str) { //11
System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
++n;
return ++i;
}
public static void main(String args[]) { //12
Text t = new Text("init");
}
}
此程序首先执行public static int k = 0;随后进行加载类Text,先初始化静态属性(new Text("t1")),执行 7和8 然后执行 3,之后又遇到new Text("t2");然后又进行初始化静态属性,执行 7和8,初始化完成之后,开始执行4,之后便执行5,6,9;然后去执行 Text t = new Text("init"),执行之前先实例化类,然后在去执行相应的构造函数。
注意;如有不对请联系博主