Class.forName VS LoadClass
区别:
LoadClass 不初始化类。
Class.forName 初始化类。
tips:
只要出现了 xx.Class , 这个 Class 就已经加入了 JVM 中。
静态代码块什么时候执行的。
装载 — 链接 — 初始化 — 实例化。
初始化后 开始执行静态代码块。
对象初始化顺序
对象初始化,顺序:
- 父类静态对象,静态代码块
- 子类静态对象,静态代码块
- 父类非静态对象,非静态代码块
- 父类构造函数
- 子类非静态对象,非静态代码块
- 子类构造函数