类加载class loader
Class装载验证流程:
- 加载:取得类的二进制流,转为方法区的数据结构,在java堆中生成对应的java.lang.class对象
- 链接:就是将已经读入到内存的类的二进制数据合并到虚拟机的运行时环境中去。
l 验证:保证class流的格式正确
l 准备:为类的静态变量分配内存,并设置默认的初始值(方法区中)
l 解析:符号引用转化为直接引用
- 初始化:执行类的构造器。Static语句、变量,调用父类构造器
ClassLoader:
l ClassLoader负责类装载过程中的加载阶段
l ClassLoader的实例将读入Java字节码将类装载到JVM中
l ClassLoader可以定制,满足不同的字节码流获取方式
l ClassLoader是一个抽象类
分类:
l BootStrap ClassLoader (启动ClassLoader)
l Extension ClassLoader (扩展ClassLoader)
l App ClassLoader (应用ClassLoader/系统ClassLoader)
l Custom ClassLoader(自定义ClassLoader)
每个ClassLoader都有一个Parent作为父类