java初始化的先后顺序:静态变量(若为静态对象变量则初始化对应类的普通变量、初始化块)、静态初始化块、普通变量、初始化块、构造器。
public class Test
{
public static int k = 0;
public static Test t1 = new Test("t1");
public static int i = print("i");
public static Test t2 = new Test("t2");
public static int n = 99;
public int j = print("j");
//初始化块
{
print("初始化块");
}
//静态初始化块
static {
print("静态初始化块");
}
public Test()
{
print("构造块Test");
}
public Test(String str)
{
System.out.println((++k) + ":" + str + " i=" + i + " n=" + n);
++i;
++n;
}
public static int print(String str)
{
System.out.println((++k) + ":" + str + " i=" + i + " n=" + n +" print");
++n;
return ++i;
}
public static void main(String args[])
{
Test t = new Test("init");
}
}