6.通过java.exe调用类的方法时
类加载器
根类加载器
扩展类加载器
系统类加载
其他加载方式都是属于被动加载...引用静态[常量]不会导致该类的初始化.
类的加载阶段
类的加载就是将class的二进制读取到内存中,然后将字节流静态存储结构转换为方法去中运行的数据结构,并在堆中生成该类的Class对象,作为入口....类加载的最终就是堆中的一个对象,不管被加载多少次,对应堆中对象始终是同一个,
在栈中形成对对象的引用....类加载器之间严格遵守父委托机制
Bootsrap 根加载器
主要负责核心类库的加载,例如java.lang 包加载
扩展类加载器
扩展类加载器的父类是根加载器,主要用于加载java_home 下的jre...系统类加载器
负责加载classpath下的类库资源
双亲委托机制
当一个类加载器调用loadclass之后,它并不会直接将其进行加载,而是先交给当前类加载器的父加载器尝试加载直到最顶层的父加载器,然后再依次向下进行加载