去涉猎了一下类的加载的过程,现在也总结一下: 一个java文件从被加载到被卸载这个生命过程,总共要经历4个阶段: 加载->链接(验证+准备+解析)->初始化(使用前的准备)->使用->卸载 其中加载(除了自定义加载)+链接的过程是完全由jvm负责的,什么时候要对类进行初始化工作(加载+链接在此之前已经完成了),jvm有严格的规定(四种情况): 1、遇到new,getstatic,putstatic,invokestatic这4条字节码指令时,加入类还没进行初始化,则马上对其进行初始化工作。其实是3种情况:用new实例化一个类时、读取或者设置类的静态字段时(不包括