类的加载顺序
/** * 父类 * */public class Parent {private int ix = 50;private static int iz = getNext(30);{System.out.println("Parent的初始化块");int x = 100;int y = getNext(100);}static{System.out.println("Parent的静态初始化块");int sx = 100;int sy = getNext(100);}public Parent(){System.out.println("Parent的构造方法被调用");}public void display(){System.out.println("Parentde的display方法被调用");System.out.print("ix=" + this.ix);System.out.println("; iz=" + iz);dispA();}public static int getNext(int base){System.out.println("Parent的getNext(int base)被调用");return ++base;}public static void dispA(){System.out.println("Parent的dispA()被调用");}protected void finalize(){System.out.println("Parent的销毁方法被调用");}}public class Child extends Parent{{System.out.println("Child的初始化块");int bx = 100;}static{System.out.println("Child的静态化初始化块");}public Child(){super();System.out.println("Child的构造方法被调用");}public static void dispB(){System.out.println("Child的dispB()被调用");}/** * 当Java进行垃圾回收时,会调用对象的finalize方法 */protected void finalize(){System.out.println("Child的销毁方法被调用");super.finalize();}}/** * 类的加载顺序 * */public class ClassInitOrderTest {public static void main(String args[]){System.out.println("不new对象,访问静态方法时的输出:");Child.dispB();System.out.println();System.out.println("new对象,访问非静态方法时的输出:");new Child().display();//通知虚拟机进行垃圾回收System.gc();}}