引言
实例
public class StaticInit {
private static int k = 1;
private static StaticInit t1 = new StaticInit("t1");
private static StaticInit t2 = new StaticInit("t2");
private static int i = print("i");
private static int n = 99;
{
print("初始化块");
j = 100;
}
public StaticInit(String str) {
System.out.println((k++) + ":" + str + " i=" + i + " n=" + n);
++i;
++n;
}
static {
print("静态块");
n = 100;
}
private int j = print("j");
public static int print(String str) {
System.out.println((k++) + ":" + str + " i=" + i + " n=" + n);
++n;
return ++i;
}
public static void main(String[] args) {
StaticInit test = new StaticInit("test");
}
}
输出结果:
解析
大致流程如下:
分析: