父类静态成员变量 -> 本类静态变量 -> 父类非静态变量 -> 父类构造函数 -> 本类非静态变量 -> 本类构造函数
Demo:
public class Main {
public static void main(String[] args) {
TestClass tc = new TestClass();
}
private static class base {
public base(String id) {
System.out.println("base initialized :"+id);
}
}
private static class Parent {
base b2 = new base("b2");
static base b4 = new base("b4");
public Parent() {
System.out.println("Parent initialized.");
testSync();
}
public void testSync() {
System.out.println("Parent testSync.");
}
}
private static class TestClass extends Parent{
private final static base b = new base("b1");
private final base b3 = new base("b3");
public TestClass() {
//super();
synchronized(b3) {
System.out.println("TestClass initialized.");
}
}
@Override
public void testSync() {
synchronized(b) { //crash on synchronized(b3)
System.out.println("TestClass testSync.");
}
}
}
}
输出:
base initialized :b4
base initialized :b1
base initialized :b2
Parent initialized.
TestClass testSync.
base initialized :b3
TestClass initialized.



