类加载时机
加载loading

加载.class文件的方法




类连接阶段

验证阶段

准备阶段


解析阶段

初始化

简而言之,为类的静态变量赋予正确的初始值。如果前面的步骤都没有问题,那么表示类可以顺利装载到系统中,此时才会开始执行Java字节码。即:到了初始化阶段,才开始真正的执行类中定义的Java程序代码。
在加载一个类之前,虚拟机总是试图加载该类的父类,因此父类的<clinit>总是在子类<clinit>之前被调用,也就是会先执行父类的静态变量赋值和静态代码块。
是否生成<clinit>


static + final修饰字段的显示赋值操作到底是在哪个阶段进行赋值 
<clinit>线程安全性

类的主动使用和被动使用
被动使用的例子,没有初始化不代表没有加载
类加载器ClassLoader

类加载的分类:显示加载 vs 隐式加载

类的命名空间

类的加载器分类



引导类加载器

扩展类加载器

系统类加载器

用户自定义加载器

双亲委派机制
定义与本质


双亲委派机制的优势以及弊端


弊端
三次双亲委派模型的破坏






















