类的加载顺序
一、类加载的过程
- 先检查内存中是否存在此字节码文件,没有进行加载.class文件。
- 静态成员先加载,并得到初始值。
- 静态代码块再执行(与第二步的先后,主要是看他们之间的顺序)。
- 当执行new的时候,会把静态成员进行初始化,并在堆中开辟空间。
- 会找到相应的构造函数,但是不会直接执行。
- 先把实例变量进行初始值。
- 找到构造代码块。
- 进入构造函数,执行函数体。
- 在栈中创建引用指向堆中的实例。
二、类加载的顺序
- 静态成员
- 静态代码块
- 成员变量
- 匿名代码块
- 构造器
注:父类先加载,子类后加载
三、代码
这里我们写了两个类,一个是Animal是父类,另一个是子类Dog
Animal类
public class Animal {
public String name;
public int leg;
static Str