类加载的原则:延迟加载,能不加载就不加载。
类加载的顺序:
1.加载静态成员/静态代码块(只执行一次):
先递归加载父类的静态成员/静态代码块,再依次加载到本类的静态成功/静态代码块。
同一个类内的静态成员/静态代码块,按写的代码先后顺序加载(如果其间调用了静态方法,则调用时会先运行该静态方法,再继续加载,同个类的静
态方法没有先后顺序区分)
2.加载成员变量/构造代码块(每new一次执行一次)
先递归加载父类的成员变量/构造代码块,再依次加载到本类的成员成功/构造代码块。
同一个类内的成员变量/构造代码块,按写的代码先后顺序加载(如果其间调用了成员方法,则调用时会先运行该成员方法,再继续加载,同个类的成
员方法没有先后顺序区分);
3.加载构造方法
先递归加载父类的构造方法,再依次加载到本类的构造方法。