上级委托加载机制
1.整个JVM平台提供三层ClassLoader
Bootstrap ClassLoader
主要加载JVM自身工作需要的类 ,完全由JVM控制,一个类加载工具,没有高一级的父类加载器,也没用子加载器 没有遵守
ClassLoader
加载规则ExtClassLoader
标准扩展类加载器 没父
AppClassLoader
父类是
ExtClassLoader
classpath目录下的类都可以被这个加载器加载
注意:
1.如果要实现自己的类加载器,不管你是直接实现抽象类ClassLoader,还是继承URLClassLoader
类,或者其他子类,它的父加载器都是AppClassLoader
.
2.在应用中能提取到的顶层父类是ExtClassLoader
2.JVM加载.class文件的过程
- 找到 .class文件,并把该文件包含的字节码加载到内存中.
- 字节码验证,Class类数据结构分析及相应的内存分配和最后的符号表的链接
- 类中静态属性和初始化赋值,以及静态块的执行